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
function CheckForm()
{
var captcha=document.getElementById('form').captcha.value;
var vcaptcha=document.getElementById('form').vcaptcha.value;

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


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

// Captcha
$nb1 = rand(1, 5);
$nb2 = rand(1, 5);
$somme = $nb1 + $nb2;
$_SESSION['resultat'] = $somme;
$captcha_crypted = md5($somme);

?>

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

<form id="form" onsubmit='return CheckForm()' action="" method='post'>
<div>Combien font <? echo $nb1; ?> + <? echo $nb2; ?> ?</div>
<div><input class="input" type="text" size="20" name="captcha" /></div>
<div><small><i>
(Pour vérifier qu'il ne s'agit pas d'un robot qui saisit le formulaire)
</i></small></div>
<div><input class="input" type="submit" value="envoyer" /></div>
<div>
<input type="hidden" name="vcaptcha" value="<?php echo $captcha_crypted; ?>"/>
</div>
</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