PHP - Notice : Undefined index

Décembre 2016




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.

A voir également :

Ce document intitulé «  PHP - Notice : Undefined index  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.