Page 1 sur 1

J'ai ce message d'erreur : Undefined index: action in ...

Posté : 09 mai 2006, 10:59
par lafieau
Bonjour tout le monde !
Donc comme l'indique si bien le titre j'ai le message d'erreur suivant :
Notice: Undefined index: action in c:\program files\easyphp1-8\www\site\contact.php on line 22
et ma ligne 22 :
if($_POST['action'] == 'submitted')
Alors si quelqu'un pouvait m'aider, ça serait super sympa !
Encore merci !

Posté : 09 mai 2006, 11:02
par charabia
Fournies nous un code plus complet :)

Les numéros de ligne ne sont parfois pas très bien situés...

En gros cette erreur indique que $_POST['action'] n'est pas définie. Fait un test avec isset.

Posté : 09 mai 2006, 11:03
par zeus
Ce message d'erreur veut dire qu'il ne trouve pas l'index 'action' dans le tableau $_POST

Celà veut tout simplement dire que ta variable n'existe pas.

Pour corriger ce problème, tu peux tester son existence avec isset
//Si la variable $_POST['action'] existe et qu'elle vaut 'submitted'
if(isset($_POST['action']) && ($_POST['action'] == 'submitted'))

Posté : 09 mai 2006, 11:03
par guilt92
Cela signifie que $_POST['action'] n'existe pas. Vérifie l'orthographe dans la page appelante et la méthode qui doit bien etre un POST.

Si tu veux éviter d'avoir l'erreur rajoute la condition isset()

Ainsi tu auras :
if(isset($_POST["action"]) && $_POST['action'] == 'submitted')
Comme ca si il n'est pas défini tu n'auras pas de probleme, si tu traites le cas dans un else bien sur...

EDIT : Zeus m'a devancé :(

Posté : 09 mai 2006, 11:12
par lafieau
Merci pour tout cet élan d'aide ! :wink:
Donc du coup j'ai appliqué la solution de Zeus (désolée pour les autres, mais merci quand même !) et euréka ça marche !!! Mais je n'ai pas tout compris donc ça n'arrange pas tout !
Puisque ça marche avec isset c'est que ma variable existe bien, non ?
Je comprends vite, mais faut m'expliquer longtemps !!! :oops:

Posté : 09 mai 2006, 11:15
par guilt92
tu es sur que tu rentres dans la boucle if() ?

Le isset permet juste de tester l'existence de la variable donc le rajouter te permet d'éviter le message d'erreur, mais cela ne veut pas dire que tu vas rentrer dans le if...

Pour être sur de bien rentrer dans la boucle tu peux rajouter un echo "Je suis dedans !!!" dans le if et un echo "Je n'y suis pas" dans le else par exemple, cela te permettra d'être sur...

Posté : 09 mai 2006, 11:26
par zeus
En fait, je pense que ce code est sur une page qui contient un formulaire et qui doit s'executer quand le formulaire est validé, non ?

Si c'est le cas, au 1er chargement de ton formulaire, il n'y a rien en POST donc ta variable n'existe pas et tu obtient une erreur.

La fonction isset() retourne true si la variable existe et false sinon, ce qui permet de ne pas faire le test sur le contenu de la variable si elle n'existe pas .

Je ne sais pas si je suis clair :-k