"Avis : Undefined variable" ;, "Notice : Undefined index" ;, et "Notice : Undefined offset" ; en utilisant PHP
J’exécute un script PHP et je continue à recevoir des erreurs du type :
Notice : Undefined variable : my_variable_name in C:\wamp\www\mypath\index.php on line 10
Remarque : Undefined index : my_index C:\wamp\www\mypath\index.php on line 11
Les lignes 10 et 11 ressemblent à ceci :
echo "My variable value is: " . $my_variable_name;
echo "My index value is: " . $my_array["my_index"];
Quelle est la signification de ces messages d'erreur ?
Pourquoi apparaissent-ils tout d'un coup ? J'ai utilisé ce script pendant des années et je n'ai jamais eu de problème.
Comment puis-je les corriger ?
Il s'agit d'une question de référence générale à laquelle les gens peuvent faire un lien en double, au lieu de devoir expliquer le problème encore et encore. Je pense que cela est nécessaire car la plupart des réponses du monde réel sur cette question sont très spécifiques.
Discussion Meta connexe:
- [Que faire des questions répétitives ?][1]
- [Les "questions de référence" ont-elles un sens ?][2]
[1] : https://meta.stackexchange.com/questions/62258/what-can-be-done-about-repetitive-questions [2] : https://meta.stackexchange.com/questions/63762/do-reference-questions-make-sense
Essayez-les.
Q1 : cette remarque signifie que $varname n'est pas
Ou, comme solution rapide et sale :
Note sur les sessions :
Lorsque vous utilisez des sessions,
session_start();
doit être placé à l'intérieur de tous les fichiers utilisant des sessions.http://php.net/manual/en/features.sessions.php
Généralement en raison d'une "mauvaise programmation" et de la possibilité de commettre des erreurs maintenant ou plus tard.
if (isset($varname))
, avant de l'utiliser.Cela signifie que vous testez, évaluez ou imprimez une variable à laquelle vous n'avez encore rien affecté. Cela signifie soit que vous avez une faute de frappe, soit que vous devez vérifier que la variable a été initialisée à quelque chose d'abord. Vérifiez vos chemins logiques, elle peut être initialisée dans un chemin mais pas dans un autre.