Bonjour/Bonsoir !

J'ai tenté de créer un formulaire où l'utilisateur entre le résultat d'une opération donnée précédement au hasard (5+9=? par exemple). Après que l'tilisateur ait rentré sa réponse, je voudrais que ma page lui renvois s'il a juste ou faux.
J'utilise pour celà deux test : un premier pour savoir si le champ a bien été remplis et un autre pour tester le résultat donné par l'utilisateur, en fonction du calcule.
Celà donne ça :


<!DOCTYPE html>
<html>
	<head>
		<title>Le quizz des champions !
		<?php include ('Header.php') ?>
				Le quizz des champions !
			</h1>
				<?php
					$Calcul = rand(1, 4);
					$Nbr1 = rand(1, 9);
					$Nbr2 = rand(1, 9);
					switch ($Calcul) {
						case '1':
							echo $Nbr1." + ".$Nbr2." = ";
						break;
						case '2':
							echo $Nbr1." - ".$Nbr2." = ";
						break;
						case '3':
							echo $Nbr1." x ".$Nbr2." = ";
						break;
						case '4':
							echo $Nbr1." / ".$Nbr2." = ";
						break;
					} ?>
					<form action="Quizz.php" method="post">
						<input type="text" name="Resultat"/>
					</form>
					<?php
					if (!empty($_POST['Resultat'])){
						if (($_POST['Resultat']) == ($Nbr1 + $Nbr2) or ($_POST['Resultat']) == ($Nbr1 - $Nbr2) or ($_POST['Resultat']) == ($Nbr1 * $Nbr2) or ($_POST['Resultat']) == ($Nbr1 / $Nbr2)){
							echo "Juste !";
						}else{
							echo "Faux !";
						}
					} ?>
	<?php include ('Footer.php') ?>


Mon problème : La page me renvois en grande partie "Faux !" alors que je rentre le bon résultat, j'ai quelques fois un "Juste !" qui apparait même en rentrant une réponse fausse... J'aimerai vraiment savoir ce qu'il ne va pas...

Merci pour vos futures réponses !
Modifié par Jardeleto (21 Jan 2015 - 02:47)
Modérateur
Salut,


Sur le premier affichage de la page tu sors nb1 et nb2 au hasard, disons 4 et 6.
Le mec entre le résultat (10) et valide.
Là ca n'envoie que "10" à ta page qui se reload et du coup reprend des nb1 et nb2 au hasard (disons 8 et 7) et comme tu fait la vérif de l'opération avec les ancien nombre avec les nouveaux (en plus meme l'opération n'est plus la meme) bah ça ne fonctionne pas (ou alors gros coup de pot t'as tiré un truc du genre 2x4 et 6+2).

Il faut que tu passe aussi le contexte de l'opération (nb1, nb 2, oprération et résultat) via des champs cachés par exemple.. et ta vérif peut se faire en tete de page avant d'afficher la page.
Modifié par _laurent (20 Jan 2015 - 22:21)