Petit captcha avec contrôle JS

Répondre
Amery
le 29/08/2008 à 09:13
Amery
Salut,

voilà un petit bout de code pour ajouter un petit captcha à un formulaire sous forme d'une question "Combien font 4+5 ?".
le code md5.js téléchargeable à l'adresse : http://pajhome.org.uk/crypt/md5/md5.js
Un exemple : http://www.carougeinfo.ch/captcha/exemple


FICHIER checkform.js
  1. function CheckForm()
  2. {
  3. var captcha=document.getElementById('form').captcha.value;
  4. var vcaptcha=document.getElementById('form').vcaptcha.value;

  5. if(captcha == "") {
  6. alert('Veuillez répondre à la question anti-robot, svp.'); return false; }
  7. else if(hex_md5(captcha)!=vcaptcha) {
  8. alert('Votre réponse à la question anti-robot est incorrecte.'); return false; }
  9. return true;
  10. }


Le formulaire :
  1. <?php
  2. session_start();
  3. if($_POST['captcha']!="" && $_POST['captcha']==$_SESSION['resultat'])
  4. {
  5. // Traitement des données du formulaire
  6. }

  7. // Captcha
  8. $nb1 = rand(1, 5);
  9. $nb2 = rand(1, 5);
  10. $somme = $nb1 + $nb2;
  11. $_SESSION['resultat'] = $somme;
  12. $captcha_crypted = md5($somme);

  13. ?>

  14. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  15. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  16. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  17. <head>
  18. <script type="text/javascript" src="checkform.js"></script>
  19. <script type="text/javascript" src="md5.js"></script>
  20. </head>
  21. <body>

  22. <form id="form" onsubmit='return CheckForm()' action="" method='post'>
  23. <div>Combien font <? echo $nb1; ?> + <? echo $nb2; ?> ?</div>
  24. <div><input class="input" type="text" size="20" name="captcha" /></div>
  25. <div><small><i>
  26. (Pour vérifier qu'il ne s'agit pas d'un robot qui saisit le formulaire)
  27. </i></small></div>
  28. <div><input class="input" type="submit" value="envoyer" /></div>
  29. <div>
  30. <input type="hidden" name="vcaptcha" value="<?php echo $captcha_crypted; ?>"/>
  31. </div>
  32. </form>


Rien de bien sorcier, mais ça fonctionne bien.

Amery
ROYARC
le 18/02/2010 à 04:53
ROYARC
Bonjour,
Pourrais-tu revisiter cette page?
1/l'exemple ne fonctionne plus
2/le code md5.js ne semble pas être en rapport avec un formulaire sous forme d'une question "Combien font 4+5 ?"
D'avance merci.
ROYARC
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours