[RESOLU] Probleme de validation captcha

Eléphanteau du PHP | 12 Messages

05 févr. 2013, 10:05

Bonjours à tous !
J ai un petit problème mon captcha me retourne toujours valide même si je note le mauvais code ! :P
voici mon bout de code
 //ici ça marche
	if (trim($_POST['code']) === '') {//si l'utilisateur a entré un code
	$codewarning = '  Aucun code :'; //réponse : pas de code
	$haswarning = true; //si ok pas d'alerte 

         //ici ça beug
	$code = strtoupper($_POST['code']);//conversion en majuscule
	if( md5($code) == $_SESSION['captcha'] ){//vérification du code avec mon captcha.php qui est normalement bon
	$codewarning = '  Erreur code :';//réponse : si erreur de code
	$haswarning = true; //si ok pas d'alerte 
	} else {
	$code = trim($_POST['code']);//<---utile?
	}
	}
	
//si aucune erreur  envoi du mail 
Je ne comprend pas d’où vient l'erreur.
au secours aidez moi svp :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 févr. 2013, 21:37

salut,

j'ai un peu corrigé et surtout commenté ton code ;)
<?php
if (!empty($_POST['code']) && !empty(trim($_POST['co']))) {
	
	$code = strtoupper(trim($_POST['code']));//conversion en majuscule
	if( md5($code) === $_SESSION['captcha'] ){//vérification du code avec mon captcha.php qui est normalement bon
		// la c'est bon 
	} else {
		// la c'est pas bon
	}
}
?>
tu peux comparer ce qu'il y a en session et me md5 en les affichant (par exemple avec var_dump()).


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

05 mars 2013, 15:52

Salut du coup j'ai avancé sur d'autre truc et je viens de revenir la dessus
et du coup avec un peu plus d 'expérience j'ai trouver la soluce!
	if (trim(!empty($_REQUEST['code']))) {
// Conversion en majuscules
	$code = strtoupper($_REQUEST['code']); 
// Cryptage et comparaison avec la valeur stockée dans $_SESSION['captcha']
	if( md5($code) == $_SESSION['captcha'] ) {
	$erreurcode = 'correct'; // Le code est bon
	} else {
	$haswarning = true;
	$erreurcode = 'Code invalide';
	$erreur = "5";
	}
	} else {
	$haswarning = true;
	$erreurcode = 'Entrez le code svp';
	$erreur = "5";
	}

Sans oublier bien sur le
session_start();
en debut de formulaire!
Merci pour ton aide #moogli !!