Cherche Aide
Fermé
Caroline
-
14 mai 2005 à 21:25
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 14 mai 2005 à 22:11
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 14 mai 2005 à 22:11
3 réponses
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
14 mai 2005 à 21:32
14 mai 2005 à 21:32
Salut,
$_POST["e"] = $c; ne sert à rien, il faut mettre un champ hidden dans
ton formulaire qui contient la réponse. Dans le code HTML de ton formulaire
tu peux inclure un truc du genre :
Dans rep.php tu recuppère la valeur comme un input normal.
/rmq mets un sujet plus précis tu type '[php] problème formulaire'
A+, crabs
$_POST["e"] = $c; ne sert à rien, il faut mettre un champ hidden dans
ton formulaire qui contient la réponse. Dans le code HTML de ton formulaire
tu peux inclure un truc du genre :
<input type="hidden" name="e" value="<?php echo $c; ?>' />
Dans rep.php tu recuppère la valeur comme un input normal.
/rmq mets un sujet plus précis tu type '[php] problème formulaire'
A+, crabs
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 524
14 mai 2005 à 21:42
14 mai 2005 à 21:42
Tiens c'est une bonne idée :-)
Par contre je ne comprends pas pourquoi tu affiches le résultat.
L'idée c'est que tu crées une opération sans afficher le résultat, puis on tape le résultat, on envoie et on voit si c'est juste ou pas, c'est bien ça?
En ce cas.
Il ne fait pas faire
Ca n'enverra pas ta variable à la prochaine page, $_POST n'est que la variable qui reçoit tout ce qui est passé en requête POST sur la page, mais il ne les transmet pas aux suivantes.
Si tu veux faire passer $c à la prochaine page, met ton $c en variable session:
$_SESSSION['c']=$c;
Et tu le récupères à la prochaine page de la même manière.
Pour que la session soit prise en compte sur tes deux pages, il faut y mettre session_start() au début.
Ca nous donne ça:
index.php:
rep.php:
J'ai remplacé aussi les <html><body> pour les mettre après le session_start() parce rien ne doit être écris dans la page avant de commencer une session (pas même un espace)....
Et aussi dans rep.php tu avais mis if($e=$c) (si tu veux vérifier une comparaison, utilises "==", sinon "=" est une affectation simple. Dans un test, ça aurait toujours retourné "vrai" puisque l'affectation ici ne passerait sans encombre...)
PS: Scuse crabs, j'étais en train d'écrire quand tu postais, j'avais pas vu ta réponse..... :-|
Par contre je ne comprends pas pourquoi tu affiches le résultat.
L'idée c'est que tu crées une opération sans afficher le résultat, puis on tape le résultat, on envoie et on voit si c'est juste ou pas, c'est bien ça?
En ce cas.
Il ne fait pas faire
$_POST['e']=$c;
Ca n'enverra pas ta variable à la prochaine page, $_POST n'est que la variable qui reçoit tout ce qui est passé en requête POST sur la page, mais il ne les transmet pas aux suivantes.
Si tu veux faire passer $c à la prochaine page, met ton $c en variable session:
$_SESSSION['c']=$c;
Et tu le récupères à la prochaine page de la même manière.
Pour que la session soit prise en compte sur tes deux pages, il faut y mettre session_start() au début.
Ca nous donne ça:
index.php:
<?php session_start(); echo "<html><body>"; mt_srand((float) microtime()*1000000); $a = mt_rand(0, 10); $b = mt_rand(0, 10); echo $a,"+",$b,"="; $c = $a+$b; $_SESSION['c'] = $c; ?> <form action="rep.php" method="post"> <input type="text" name="reponse" /> <input type="submit" /> </form> </BODY> </HTML>
rep.php:
<?php session_start(); echo "<html><body>"; $e = $_POST["reponse"]; echo $e; echo "<br>"; echo $_POST["reponse"]; echo "<br>"; echo $_POST["e"]; if ($e==$_SESSION['c']) echo "bon"; else echo "mauvais"; ?> </BODY> </HTML>
J'ai remplacé aussi les <html><body> pour les mettre après le session_start() parce rien ne doit être écris dans la page avant de commencer une session (pas même un espace)....
Et aussi dans rep.php tu avais mis if($e=$c) (si tu veux vérifier une comparaison, utilises "==", sinon "=" est une affectation simple. Dans un test, ça aurait toujours retourné "vrai" puisque l'affectation ici ne passerait sans encombre...)
PS: Scuse crabs, j'étais en train d'écrire quand tu postais, j'avais pas vu ta réponse..... :-|
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
14 mai 2005 à 22:11
14 mai 2005 à 22:11
No problem, de plus j'avais pas vu le '=='...