Rechercher : dans
Par :

[PHP] Image de vérification de formulaire

Dernière réponse le 4 oct 2007 à 16:14:07 Dorian, le 3 oct 2007 à 21:41:22 
 Signaler ce message aux modérateurs

Bonjour,

Je n'arrive pas à réaliser la fonction de vérification d'une combinaison présente sur une image de vérification de formulaire avec le code saisie par l'utilisateur qui devrait correspondre.

La création et l'enregistrement de la combisaison se fait comme cela :

$alphanum = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
$rand = substr(str_shuffle($alphanum), 0, 5);
$_SESSION['image_random_value'] = md5($rand);

La comparaison des deux combinaisons, comme cela :

if(md5($code) != $_SESSION['image_random_value']) {
$error = $error . "Le code ne correspond pas, réessayez !";
$checkpass = 'false';
}

Je recupère bien sur le code saisie par l'utilisateur dans la variable $code.

Avez-vous une solution pour ce problème bien embarrassant ?

Par avance, merci.

Dorian.

Configuration: Windows Vista
Firefox 2.0.0.7

Meilleures réponses pour « [PHP] Image de vérification de formulaire » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Les formulaires HTML VoirIntérêt d'un formulaire Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page web d'éléments interactifs permettant par exemple un dialogue avec les internaute, à la manière des coupons-réponse présents dans certains...

1

Carotte77, le 3 oct 2007 à 21:57:49
  • +1

Bonjour,

Je n'ai pas très bien saisi ton problème : tu souhaites élaborer un captcha code ?

Pour info : un captcha code est un outil anti spam pour formulaire, ou l'on demande à l'internaute d'entrer des chiffres et lettres dans une case pour vérifier qu'il n'est pas un robot (exemple ici : http://www.atelierphp5.com/images/captcha.jpg ) Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Répondre à Carotte77

2

Dorian, le 3 oct 2007 à 22:46:10

Bonsoir,


Ceci est déjà fait... (par la même occassion, je t'indique que ton lien est mort). En fait mon problème se situe à la phase de comparaison du code inscrit par l'utilisateur et du code crypté en md5 par le système anti spam...

Merci et bonne nuit.

Dorian

Répondre à Dorian

3

Dorian, le 3 oct 2007 à 22:48:14

PS: erreur, le lien n'est pas mort, je devais avoir un problème lors de son ouverture :S désolé..

Répondre à Dorian

4

 Dorian, le 4 oct 2007 à 16:14:07

Bonjour,

Suite à mon dernier message, voici le code que j'ai écris :

<?PHP if ( isset($_GET['image']) || $_POST['action'] == "submit" ) {
	session_start();
};

// CODE D'AUTHENTIFICATION GIF
if ( isset($_GET['image']) )
{

	$alphanum = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
	$rand = substr(str_shuffle($alphanum), 0, 5);
	$_SESSION['image_random_value'] = md5($rand);
	$image = imagecreatefromjpeg("img/bg".rand(1,2).".jpg");
	$bgColor = imagecolorallocate ($image, 255, 255, 255);
	$textColor = imagecolorallocate ($image, 0, 0, 0);
	imagestring ($image, 5, 5, 2, $rand, $textColor);
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
	header("Cache-Control: no-store, no-cache, must-revalidate");
	header("Cache-Control: post-check=0, pre-check=0", false);
	header("Pragma: no-cache");
	header('Content-type: image/jpeg');
	imagejpeg($image);
	imagedestroy($image);
	exit;
}; ?>
<title>Titre page</title>
include("includes/config.inc.php"); ?>

            
			<span class="Style1"><p align="center">&nbsp;</p>
            <p align="center">Titre page</p>
            <p align="center">&nbsp;</p>
            </span>
			
<? if ($_POST['post']=="1") {

	$name = $_POST["name"];
	$firstname = $_POST['firstname'];
	$email1 = $_POST['email1'];
	$email2 = $_POST['email2'];
	$password1 = $_POST['password1'];
	$password2 = $_POST['password2'];
	$newsletter = $_POST['newsletter'];
	$termscheck = $_POST['terms'];
	$referrer = $_POST['referrer'];
	$code = $_POST['code'];

		if ($name == "") {
            $error = $error . 'Vous devez entrer votre nom<br>';
            $checkpass = 'false';
        }
		
		if (ereg('%', $name) || ereg('<', $name) || ereg('>', $name)) {
            $error = $error . 'Votre nom contient un/des caract&egrave;re/s non autoris&eacute;s<br>';
            $checkpass = 'false';
		}
		
		if ($firstname == "") {
            $error = $error . 'Vous devez entrer votre pr&eacute;nom<br>';
            $checkpass = 'false';
        }
		
		if (ereg('%', $firstname) || ereg('<', $firstname) || ereg('>', $firstname)) {
            $error = $error . 'Votre prénom contient un/des caract&egrave;re/s non autoris&eacute;s<br>';
            $checkpass = 'false';
		}

		$res = mysql_query("select count(*) from user where email='$email1'");
        if (mysql_result($res, 0) != 0) {
            $error = $error . 'Votre adresse e-mail est d&eacute;j&agrave; enregistr&eacute;e dans notre base de 		donn&eacute;es<br>';
            $checkpass = 'false';            
        }
		
        if (!ereg('@', $email1) || !ereg('.', $email1) || ereg('yopmail.com', $email1) || ereg('link2mail.net', $email1) || ereg('ephemail.net', $email1) || ereg('jetable.org', $email1)) {
            $error = $error . 'Votre adresse e-mail est invalide<br>';
            $checkpass = 'false';	
        }
		
        if ($email1 != $email2) {
            $error = $error . 'Les deux adresses e-mail saisies ne correspondent pas<br>';
            $checkpass = 'false';
        }
		 
	    if ($password1 == "") {
            $error = $error . 'Vous devez entrer un mot de passe<br>';
            $checkpass = 'false';
        } 
				        
		if (ereg('%', $password1) || ereg(' ', $password1)) {
            $error = $error . 'Votre mot de passe contient un/des caract&egrave;re/s non autoris&eacute;s<br>';
            $checkpass = 'false';
        }
		
		  if ($password1 != $password2) {
            $error = $error . 'Les deux mots de passe saisies ne correspondent pas<br>';
            $checkpass = 'false';
        }
	   
	    if ($termscheck != 1) {
            $error = $error . 'Vous devez accepter le r&egrave;glement pour vous inscrire<br>';
            $checkpass = 'false';
        }
        if(md5($code) != $_SESSION['image_random_value']) {
            $error = $error . "Le code ne correspond pas, réessayez !";
			$checkpass = 'false';
		}
			
		if ($checkpass == 'false') {
            $error = $error . '</font></b></div>';
            echo($error);
        }
		
		if ($checkpass != 'false') {
		echo("REQUETES + INSCRIPTION OK");
		;}
		
			
			 ;} else { ?>

			<form id="form" name="form" method="POST" action="<? $_SERVER['PHP_SELF'] ?>"><table width="600" border="0" align="center">
              <tr>
                <td height="40" colspan="2" class="Style1">Votre nom : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="name" type="text" size="40" />                
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Votre pr&eacute;nom : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="firstname" type="text" size="40" />
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Votre adresse e-mail : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="email1" type="text" size="40" />
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Votre adresse e-mail (confirmation) : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="email2" type="text" size="40" />
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Votre mot de passe : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="password1" type="password" size="40" />
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Votre mot de passe (confirmation) : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="password2" type="password" size="40" />
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Recevoir la lettre d'information : (?) </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="newsletter" type="checkbox" value="1" checked="checked" />
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="2" class="Style1">Acceptation du r&egrave;glement : </td>
                <td width="47%" height="40" class="Style1"><div align="center">
                  <input name="terms" type="checkbox" value="1" />
                </div></td>
              </tr>
              <tr>
                <td width="38%" height="40" class="Style1">Code de v&eacute;rification : (?) </td>
                <td width="15%" class="Style1"><div align="center"><img src="signup.php?image" border="1" width="60" height="20" /></div></td>
                <td height="40" class="Style1"><div align="center">
                  <input name="code" type="text" size="40" maxlength="5" />                
                </div></td>
              </tr>
              <tr>
                <td height="40" colspan="3" class="Style1"><div align="center">
				  <input name="referrer" type="hidden" value="<? echo $ref; ?>" />
				  <input name="post" type="hidden" value="1" />
                  <input type="submit" name="Submit" value="Inscription !" />
                </div></td>
                </tr>
            </table>
			</form>
			<span class="Style1">
			<p align="center">&nbsp;</p>
			</span>
			
			<? ;} ?>

Répondre à Dorian