Afficher une condition et pas une erreur PHP

Fermé
leo - Modifié par leo le 11/05/2012 à 16:33
 léo - 12 mai 2012 à 10:38
Bonjour,

Comme je l'ai précisé dans le titre, au lieu de m'afficher "Qu\'est ce que vous faites la ?", je reçois un jolie message d'erreur de PHP qui me dit :

"Notice: Undefined index: pseudo in D:\wamp\www\montessori\administration.php on line 45"

Je sait que pseudo n'est pas défini, c'est justement le but de mon petit script de l'afficher ! Comment faire ?

<?php
if (isset($_POST['prenom']) AND isset($_POST['mot_de_passe']))
{
echo 'Qu\'est ce que vous faites la ?';
}
else
{
echo $_POST['pseudo'];
}
?>

Merci !
A voir également:

5 réponses

Pas d'erreur flagrante dans le formulaire, mais tout est illogique dans ta vérification.

Tu testes si un champ 'prenom' est défini alors qu'il n'y a aucun champ prénom de défini.

De plus, si les champs sont définis, tu affiches Qu'est ce que vous faites la ?
Et s'ils ne sont pas définis, tu essayes d'afficher le pseudo (alors que justement il n'est pas défini).

De plus, tu testes l'existence de champs, mais pas leurs valeurs...

Tu peux essayer ça, c'est (un peu) plus logique, et ça ne devrait pas planter
<?php
if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe'])) {
  echo $_POST['pseudo'];
}
else {
  echo 'Qu\'est ce que vous faites la ?';
}
?>
1
Bonjour

Ben c'est normal...
Si tes 3 variables $_POST[] correspondent à 3 champs d'un même formulaire, elles sont définies toutes les 3 à la fois, ou pas définies.

Et j'imagine que tu es dans le cas où tu n'es pas passé par le formulaire, donc aucune n'est définie.
donc ton test rend faux
donc on exécute le else
et on tombe sur $_POST['pseudo'] qui n'existe pas.

Peux-tu montrer le code du formulaire qui appelle ce script ?
Et de toutes manières, le test que tu fais pour la vérification me semble hautement fantaisiste. Qu'est-ce que tu veux vérifier ?
0
L0ci Messages postés 110 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 9 janvier 2013 30
11 mai 2012 à 16:41
Bonjour,

Si pseudo n'est pas défini cela va invariablement lever une exception. Les 2 solutions que je proposerai sont :
-réutiliser le
 if(isset(...)) 
dans le
else {}

-utiliser un
try{echo $_POST['pseudo'];}
catch{ echo "pseudo non défini";}
0
Le voila

<form name="identification" method="post" action="administration.php">
<label>Identifiant : </label>
<input placeholder="Pseudo" name="pseudo" size="20" required/>
<br/>
<label>Mot de passe : </label>
<input placeholder="Mot de passe" name="mot_de_passe" type="password" size="20" required/>
<br/>
<br/>
<input type="submit" value="Valider" /></td>
</form>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
les joies de l'apprentissage du php ^^ Merci beaucoup mon père :D
0