Vedi.... non trovo sia carino rispondere da "piccato" a persone che provano a darti una mano.
$_FILES è un array e come tale si scorre utilizzando la sintassi con parentesi quadre e apici singoli.
Ad una persona che fisicamente non può mettere mano sullo script presente nel tuo PC, il primo errorino (pur stupido) sembra la soluzione al problema.
Io poi ti avevo segnalato (per il controllo sul fatto che il file fosse stato caricato o meno nella form) isset. [LINK ]
Ti snellisce il codice e peraltro è sempre utilizzato proprio per controllare se una variabile passata da form esiste o meno
In ultimo, trovo inutile andare ad associare una variabile quando non ce ne è bisogno.
Ripeto, lo script funziona lo stesso ma si segnalano certe cose per provare a migliorare il tutto.
Codice PHP:
if(isset($_FILES['immagine']['name']) {
// codice
}
Il tuo problema forse, sta nel modo in cui viene trattato il numero che viene restituito da filesize().
Ti riporto il link a quella che dovrebbe essere la Bibbia di ogni sviluppatore PHP: il manuale su php.net => filesize().
Prova quindi questo codice.
Codice PHP:
// ometto quanto scritto prima.
$dimensioni_file = sprintf("%u", filesize($_FILES['immagine']['tmp_name']));
if($dimensioni_file > 1420000) {
// ometto quanto scritto dopo
Con questo metodo, il numero che ti ritorna la funzione FILESIZE viene castato a intero.... così sei sicuro che il controllo successivo funzioni.
Ora fa qualche prova e poi facci sapere.