Echo ne s'affiche pas
Résolu/Fermé
momo-ben2A
Messages postés
105
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
19 décembre 2010
-
24 août 2009 à 00:17
momo-ben2A Messages postés 105 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 19 décembre 2010 - 24 août 2009 à 11:18
momo-ben2A Messages postés 105 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 19 décembre 2010 - 24 août 2009 à 11:18
6 réponses
Bonjour
Dans ton script, tu as deux formulaires
Dans le premier, tu saisis le mot de passe et dans le second tu choisis la couleur.
Mais tu ne peux envoyer qu'un seul formulaire à la fois.
Donc, soit, le mot de passe est saisi, soit la couleur, mais pas les deux.
Or ta ligne if (isset($_POST['couleur'])) est à l'intérieur du if ($_POST['mdp'] == 'momo-ben2A'), donc elle n'est jamais vraie.
Solution possible : rajouter le champ le champ mdp dans le formulaire de saisie de la couleur, en champ de type hidden :
Dans ton script, tu as deux formulaires
Dans le premier, tu saisis le mot de passe et dans le second tu choisis la couleur.
Mais tu ne peux envoyer qu'un seul formulaire à la fois.
Donc, soit, le mot de passe est saisi, soit la couleur, mais pas les deux.
Or ta ligne if (isset($_POST['couleur'])) est à l'intérieur du if ($_POST['mdp'] == 'momo-ben2A'), donc elle n'est jamais vraie.
Solution possible : rajouter le champ le champ mdp dans le formulaire de saisie de la couleur, en champ de type hidden :
...</select> <input type="hidden" name="mdp" value="<?php echo $_POST['mdp']?>" /> <input type="submit" value="Valider"/>...
momo-ben2A
Messages postés
105
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
19 décembre 2010
9
24 août 2009 à 10:11
24 août 2009 à 10:11
Je te remercie pour ton aide. Mais il y a une chose que je ne comprend pas dans ton explication. C'est cet extrait
"ta ligne if (isset($_POST['couleur'])) est à l'intérieur du if ($_POST['mdp'] == 'momo-ben2A'), donc elle n'est jamais vraie. ". Je ne comprend pas car lorsque l'on choisi la couleur, la variable est créee donc la condition est valable.
Voila c'est sa que j'ai pas compris.
Je te remercie d'avance pour ton explication
"ta ligne if (isset($_POST['couleur'])) est à l'intérieur du if ($_POST['mdp'] == 'momo-ben2A'), donc elle n'est jamais vraie. ". Je ne comprend pas car lorsque l'on choisi la couleur, la variable est créee donc la condition est valable.
Voila c'est sa que j'ai pas compris.
Je te remercie d'avance pour ton explication
Lorsqu'on choisit la couleur, $_POST['couleur'] est créée, mais pas $_POST['mdp'] car mdp ne provient pas du même formulaire que couleur.
Quand tu exécutes ton script, la première fois, aucune des deux variables n'exite, tu n'affiches que le formulaire pour le mot de passe.
Quand tu saisis ton mot de passe, et que tu cliques sur le bouton submit, tu envoies le formulaire ce qui exécute le script une deuxième fois. Là, $_POST['mdp'] est défini mais pas encore $_POST['couleur'], tu es d'accord ? Ton script affiche maintenant (si le mot de passe est bon) le formulaire de choix de couleur
Tu choisis la couleur et tu cliques sur le bouton submit. Tu envoies donc le formulaire de choix de couleur, ce qui exécute ton script une troisième fois. Le formulaire que tu envoies contient bien couleur, mais il ne contient pas mdp. Donc $_POST['mdp'] n'est pas défini.
Car chaque exécution du script est indépendante des pércédentes, du moins elle ne conserve pas les variables. Pour les conserver, tu peux utiliser les sessions, oun pour un cas simple comme le tien, envoyer la donnée manquante comme champ caché.
Quand tu exécutes ton script, la première fois, aucune des deux variables n'exite, tu n'affiches que le formulaire pour le mot de passe.
Quand tu saisis ton mot de passe, et que tu cliques sur le bouton submit, tu envoies le formulaire ce qui exécute le script une deuxième fois. Là, $_POST['mdp'] est défini mais pas encore $_POST['couleur'], tu es d'accord ? Ton script affiche maintenant (si le mot de passe est bon) le formulaire de choix de couleur
Tu choisis la couleur et tu cliques sur le bouton submit. Tu envoies donc le formulaire de choix de couleur, ce qui exécute ton script une troisième fois. Le formulaire que tu envoies contient bien couleur, mais il ne contient pas mdp. Donc $_POST['mdp'] n'est pas défini.
Car chaque exécution du script est indépendante des pércédentes, du moins elle ne conserve pas les variables. Pour les conserver, tu peux utiliser les sessions, oun pour un cas simple comme le tien, envoyer la donnée manquante comme champ caché.
momo-ben2A
Messages postés
105
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
19 décembre 2010
9
24 août 2009 à 10:42
24 août 2009 à 10:42
et donc le hidden permet de se souvenir du mot de passe dans le script couleur se qui remplirai donc la premiere condition c'est bien cela ? Et si j'ai bien compris a chaque fois qu'on envoie un formulaire, tout reviens a 0 (corrige moi si je me trompe).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je crois que tu as tout compris.
Chaque fois qu'on envoie un formulaire, le script démarre de zéro, il n'a aucun souvenir des exécutions précédentes. Comme n'importe quel programme de n'importe quel langage, d'ailleurs (il . Si tu veux tenir compte des exécutions précédentes, à toi de te débrouiller pour "mettre de côté" ce qui risque de te resservir. Dans ton cas, le champ hidden est tout à fait adapté.
Chaque fois qu'on envoie un formulaire, le script démarre de zéro, il n'a aucun souvenir des exécutions précédentes. Comme n'importe quel programme de n'importe quel langage, d'ailleurs (il . Si tu veux tenir compte des exécutions précédentes, à toi de te débrouiller pour "mettre de côté" ce qui risque de te resservir. Dans ton cas, le champ hidden est tout à fait adapté.
momo-ben2A
Messages postés
105
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
19 décembre 2010
9
24 août 2009 à 11:18
24 août 2009 à 11:18
oui je l'ai mis dans le champ couleur je te remercie beaucoup, cette fois, je n'oublirai pas que a chaque fois le script recommence des le debut merci