PHP - Notice : Undefined index

jordane45
Messages postés
36045
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2022
- 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.