PHP - Notice : Undefined index

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 2 mai 2022 à 19:24



Si vous utilisez des tableaux comme les variables $_POST, $_GET, $_SESSION, $_COOKIE, ou n'importe quel ARRAY ..., il se peut que vous tombiez sur cette erreur:
Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line 'ligne en cours'


Pour éviter cette erreur il suffit de tester si ce champs du tableau a été initialisé avec la fonction isset() ou !empty()

De plus Il est préférable de récupérer "proprement" les variables AVANT de les utiliser.
Pour se faire, nous pouvons utiliser l'écriture ternaire (sorte de if):
//avec ISSET
//Si la variable $_POST['truc'] existe, alors $truc = $_POST['truc']  sinon elle vaut NULL 
$truc = isset($_POST['truc']) ? $_POST['truc'] : NULL;

//ou avec !EMPTY() 
//Si la variable $_POST['truc'] existe et n'est pas vide, alors $truc = $_POST['truc']  sinon elle vaut NULL 
$truc = !empty($_POST['truc']) ? $_POST['truc'] : NULL;




Ce type d'erreur est reporté ou pas selon la configuration du serveur.
Il n'est pas reporté par défaut car c'est le type d'erreur le moins important, correspondant à la constante E_NOTICE.

On peut modifier les types d'erreurs reportés avec la fonction error_reporting.