PHP - Notice : Undefined index

baissaoui Messages postés 497 Date d'inscription jeudi 2 septembre 2021 Statut Webmaster Dernière intervention 22 mars 2024 - Modifié le 11 juil. 2022 à 14:19

Document initial créé par jordane45

Si vous utilisez des tableaux comme les variables $_POST, $_GET, $_SESSION, $_COOKIE ..., 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 eviter 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.