Errore PHP Undefined index: ecco come risolverlo

In alcuni casi (soprattutto con le nuove versioni di php) ci si può comunemente imbattere in questo errore dovuto alla mancata verifica di esistenza della variabile. Vediamo come risolverlo in modo semplice e veloce.

Problema

Durante l’utilizzo dei method $_POST o $_GET per recuperare le variabili, php restituisce questo errore:

Notice: Undefined index ‘campo method’ in ‘percorso del file php in corso d’esecuzione’ on line ‘riga in corso’

Soluzione

Per evitare questo errore basta solo verificare se il campo method è stato inizializzato con la funzione isset().

Ecco un esempio chiarificatore:

$_POST['myVar']: 

// Prima dell'utilizzo $_POST['myVar'] 
if (isset($_POST['myVar'])) 
{ 
          // Istruzioni se $_POST['myVar'] esiste 
}

Di fatto non si tratta di un errore vero e proprio ma di un’inesattezza. In questo modo il codice è molto più linearizzato in quanto viene verificata l’esistenza della variabile. È possibile modificare il tipo di errori segnalati con la funzione error_reporting nel vostro file php.ini (non sempre è possibile cambiarlo, dipende dal vostro hosting).

  1. Ciao Riccardo,

    sono molto legato al tema di corretta gestione degli errori. Mi permetto di farti qualche precisazione:
    – le nuove versioni di php non hanno inciso assolutamente su tale tipo di errore;
    – il discorso fatto sull’utilizzo di elementi di un array solo dopo la verifica dell’esistenza non limitarlo alle variabili-array globali GET E POST; vale per tutti gli array nei casi in cui si cerca di utilizzare un elemento (con una determinata chiave) che non esiste;
    – oltre la correttissima e classica isset() per questo scopo può essere utilizzata anche la funzione array_key_exists() (ma questa è una quisquilia…);
    – la modificare l’error reporting non è una soluzione (anzi!!): i notice non sono mai gravi in quanto tali ma le conseguenze possono esserlo!
    – volendo modificare l’error_reporting non necessariamente si deve agire sul php.ini ma lo si può fare tramite .htaccess oppure, ancora, “al volo” (il manuale ufficiale utilizza l’espressione “on run”) con la funzione error_reporting();

  2. – Sul primo punto non sono daccordo, lo stesso codice su una vecchissima versione di php non mi dava problemi (o se lo dava non lo visualizzava).

    – Sì l’error reporting è meglio non toccarlo anche perchè tutti gli errori “fanno brodo” e sono utili quello era un consiglio giusto per farne saperne una di più ai lettori 😉

    – Anche io ne so una di più non sapevo si potesse disabilitare anche da htaccess :p

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Up Next:

Disporre il testo su una circonferenza con jQuery

Disporre il testo su una circonferenza con jQuery