Page 1 sur 1

validation conditionnelle à partir du contenu d'un champ texte

Posté : 29 déc. 2016, 20:42
par Lola Michel
Bonjour,
Voici mon problème :
Je génère de façon aléatoire un mot que je dois recopier dans un champ de texte et valider en appuyant sur OK.
La validation m'amène sur une nouvelle page. (validation.php)
Si j'ai bien recopié le mot, j'ai un message comme quoi c'est bon, sinon il m'invite à recopier le nouveau mot.
Dans mon cas, il me dit tout le temps que le mot n'est pas bon (même si j'ai bien recopié !)
Voyez-vous d'où vient l'erreur ?
Un grand merci pour votre aide !

Voici le code de la page accueil :
<?php session_start(); ?>

<html>
<head>
<meta charset="utf-8">
</head>
<body>

<?php
$lemot = chr(rand(65,90)).chr(rand(97,122)).chr(rand(48,57)).chr(rand(97,122)).chr(rand(65,90)).chr(rand(48,57));
echo "LE MOT EST :  ".$lemot."<br />";
$_SESSION["mot"] = $lemot ;
?>

<p>Entrez le texte que vous voyez ci-dessus :<p>
<form name="formulaire" method="post" action="validation.php">
	<input type="text" name="texte" id="texte" />
	<input type="submit" name="valide" value="OK" />
</form>

</body>
</html>
Voici le code de validation :
<?php
session_start();

if ((isset($_POST["valide"]))&&(isset($_SESSION["mot"])))
{
	$texte = $_POST["texte"];	
	//$_SESSION["texte"] = $texte ;
	echo $texte."<br />";

	$mot = $_SESSION["mot"] ;
	echo $mot."<br />";	

	if ($texte == $mot)
	{
		echo "Le mot est ok !";
	}
	else
	{
		echo "Le mot n'est pas bon. Cliquez <a href='accueil.php'>ici</a> pour resaisir le mot" ;
	}
}
?>

Re: validation conditionnelle à partir du contenu d'un champ texte

Posté : 29 déc. 2016, 21:13
par or 1
cela fonctionne chez moi.

$mot = $_SESSION["mot"] ;
echo $mot."<br />";
cela affiche bien ce qui est attendu ?

Re: validation conditionnelle à partir du contenu d'un champ texte

Posté : 29 déc. 2016, 21:50
par Lola Michel
Merci pour ta réponse or 1.
En fait l'affichage donne bien les 2 valeurs identiques avec :
echo $texte."<br />";
et
echo $mot."<br />"
par contre le message n'est pas le bon : j'obtiens tout le temps le message "Le mot n'est pas bon. Cliquez ici pour resaisir le mot". Comme si on n'entrait pas dans la bonne condition !

Re: validation conditionnelle à partir du contenu d'un champ texte

Posté : 29 déc. 2016, 23:50
par Spols
vérifie qu'il n'y ait aucun espace avant ou aprés ton mot.
essaye un var_dump() à la place de echo pour connaître la longueur des 2 chaines, si besoin fait une comparaison caractère par caractère.
tente aussi un trim() sur les 2 chaines avant comparaison

Re: validation conditionnelle à partir du contenu d'un champ texte

Posté : 30 déc. 2016, 14:40
par Lola Michel
Bien vu, c'était effectivement un problème d'espace !
Je te remercie beaucoup pour ton aide !