Mi sono appena rimesso a programmare in php dopo tanti anni di pausa, ed eccomi subito bloccato con l'errore: Undefined index.
In realtà questo non è un vero e proprio errore, ma una notizia/notifica, infatti il messaggio che appare a video è:
Notice: Undefined index: url in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\cartellasito\pagina.php on line 7
Nello specifico l'errore mi è venuto fuori quando ho provato a settare una variabile con un valore passato da una form (metodo POST, ma anche col metodo GET è lo stesso).
Finchè passi un valore alla variabile, tutto bene, ma appena non gli passi niente, ecco che spunta la notifica.
La stringa che da errore è: $variabile=$_POST['variabile'];
Ora, per risolvere il problema via codice si potrebbe fare così:
if (isset($_POST['url'])) $variabile=$_POST['variabile'];
o, se si tratta di una variabile passata via url:
if (isset($_GET['url'])) $variabile=$_GET['variabile'];
Ovviamente si può applicare anche al generico metodo REQUEST:
if (isset($_REQUEST['url'])) $variabile=$_REQUEST['variabile'];
Questo metodo però, comporta di dover agire su ogni variabile, scrivendo tanto codice in più.
Se vogliamo risolvere il problema alla radice, andiamo nel file php.ini e cerchiamo il paragrafo error_reporting.
Troveremo i seguenti esempi:
; error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
Cerchiamo la voce di error_reporting non commentata (quella senza il punto e virgola davanti) e settiamola così:
error_reporting = E_ALL & ~E_NOTICE
Avremo così fatto sparire tutte le notizie/notifiche di sistema dalle nostra applicazione e potremo così fregarcene delle variabili non settate :p
ps se necessario riavviare il webserver (apache o nginx)
Qui sotto, la videoguida su come risolvere questo problema tramite wamp:
https://youtu.be/UgJN-CvZJpo
Fine tutorial!
Piaciuto l'articolo? Lascia un commento!
EmoticonEmoticon