Problema con EthernetShield !!

Forse ho trovato.
Prima di tutto quando hai un codice così lungo premi CTRL+T che lo indenta per bene,
poi togli quei 24mila kg di righe vuote che non servono a nulla:

#include <SPI.h> 
#include <Ethernet.h> 

const byte sensor = A0;  // Pin analogico 0 di Arduino 
int temp; 
byte mac[]     = { 0x70, 0xF1, 0xA1, 0x04, 0x79, 0x49 };  // Indirizzo MAC da assegnare ad Arduino 
byte ip[]      = { 192, 168, 1, 2 };   // Indirizzo IP da assegnare ad Arduino 
byte server[]  = { 144, 76, 107, 78 };  
byte gateway[] = { 192, 168, 1, 1 };   // Indirizzo del Gateway della propria rete 
byte subnet [] = { 255, 255, 255, 0 }; // Subnet mask della propria rete 

EthernetClient client;

void setup() 
{ // Inizializzazione per l'utilizzo della rete 
  Ethernet.begin( mac, ip, gateway, subnet ); 
  Serial.begin (9600);
} 

void loop() 
{ temp = analogRead(sensor)*500/1024.0;
  delay(15000);
  // Converte il valore di 10 bit ADC rilevati sul pin A0 in volt 
  invia_dati () ; 
}

void invia_dati() 
{ Serial.print (" Connecting..." ) ; 
  // L'oggetto Serial serve solo a monitorale cosa accade 
  EthernetClient client; 
  // Inizia la connessione al server 
  if( client.connect (server,80) ) 
  { Serial.println( " Connected. " ) ; 
    Serial.println ( temp ) ; 
    // Le seguenti istruzion inviano il dato allo script PHP: 
    client.print ( "GET http://spazdiprova.altervista.org/temp.php?temp=" ) ; 
    client.print ( temp ) ; 
    client.println(" HTTP/1.1" ) ; 
    client.println ( "Host: http://spazdiprova.altervista.org" ) ; 
    client.println () ; 
    Serial.println ( "disconnecting..." ) ; 
    client.stop(); 
  } 
  // if the server's disconnected, stop the client: 
  else 
  { Serial.println (); 
    Serial.println ( "disconnecting." ) ; 
    client.stop(); 
    while ( client.status() != 0 ) delay (5) ; 
  } 
}

Ora, nel tuo sketch hai creato una funzione invia_dati(), e fin qui tutto bene.
Però dentro CREI DI NUOVO una variabile EthernetClient client
Quella esiste già, è all'inizio. Se la metti dentro la funzione, appena quella finisce, viene distrutta e perdi la connessione.
Togli quella riga.