Soyez le premier à donner votre avis sur cette source.
Vue 7 894 fois - Téléchargée 430 fois
// Source: aeroth-design (azumi13) // Decomposition: // 3 fichiers + 1 table sql // 1: configuration d'acces bdd // 2: votre formulaire // 3: validation de votre formulaire ou envoie de votre mail // 4: votre table sql // 1: Fichier config.php <?php $serveur = 'localhost'; $login = ''; $mdp = ''; $base = ''; ?> // 2: Votre formulaire, dans les balises <form> <?php include ('config.php'); mysql_connect($serveur,$login,$mdp); mysql_select_db($base); $sql = mysql_query('SELECT * FROM captcha ORDER BY rand() LIMIT 1'); $data = mysql_fetch_array($sql); echo ''.$data['question'].''; ?> <input type="text" name="reponse" /> <input type="hidden" name="id" value="<?php echo $data['id']; ?>" /> // 3: Dans votre fichier de validation ou d'envoi de mail <?php include ('config.php'); mysql_connect($serveur,$login,$mdp); mysql_select_db($base); $sql2 = "SELECT reponse FROM captcha WHERE id='".$_POST['id']."'"; $req2 = mysql_query($sql2) or die('Erreur !<br>'.$sql2.'<br>'.mysql_error()); $data2 = mysql_fetch_array($req2); if( $_POST['couleur'] != $data2['reponse']) { echo '<br><br><center><b><p>Mauvaise réponse !!</p></b></center>'; include('lien vers votre formulaire'); exit; } ?> // 4: Votre table DROP TABLE IF EXISTS `captcha`; CREATE TABLE IF NOT EXISTS `captcha` ( `id` int(11) NOT NULL auto_increment, `question` text NOT NULL, `reponse` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; INSERT INTO `captcha` (`id`, `question`, `reponse`) VALUES (1, 'La neige est de couleur :', 'blanche'), (2, 'Une tomate est de couleur :', 'rouge'), (3, 'Le cotton est de couleur :', 'blanche'), (4, 'La carotte est de couleur :', 'orange'), (5, 'Le citron est de couleur :', 'jaune'), (6, 'Combien fait 2+2 :', '4'), (7, 'Combien fait 10-5 :', '5'), (8, 'Combien fait 1+9', '10'), (9, 'Combien fait 2x4 :', '8'), (10, 'Combien fait 3x4 :', '12'); //Possibilité de rajouter autant de question que l'on souhaite //LE ZIP CONTIENT UN EXEMPLE ET TOUT EST COMMENTE POUR MIEUX S'Y RETROUVER.
Supposons que tu génères une variable du genre:
vertbleuvertrougeorange
Pour composer cette variable, tu tires au sort le nom d'une couleur parmi 4 couleurs, si la couleur a déjà été tirée 2 fois, tu tire au sort parmi les trois couleurs restantes.
tu incrémentes ta variable 5 fois avec 4 couleurs (il y en aura une qui sera citée donc 2 fois) mais tu sais laquelle car ton code le détecte.
tu pose la question: Quelle est la couleur cité 2 fois?
dans mon exemple, il s'agit de "vert"
=> bonne réponse tu valides le form, mauvaise réponse, tu regénères ta variable et tu recommences...
Bonne idée....?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.