Bonjour,
Je vous présente ce captcha, légèrement innovant par son principe.
A la base le principe provient de
http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin mais il a été redéveloppé entierement ( afin d'avoir une plus grande de sécurité et plus de fonctionnalités) sur
http://jesurveille.fr/anti-bot/
Source / Exemple :
<?php
class Captcha{
var $captachDir;
var $picto;
var $text;
var $validate;
function Captcha(){
$this->captachDir="/captcha";
$this->picto=array("stylo", "ciseau", "horloge", "coeur", "musique", "livre", "facebook", "chien", "maison");
$this->text[0]="Glissez l'icone correspondante dans le cercle.<span>";
$this->text[1]="</span>";
$this->validate=false;
}
function genText(){
$i=0;
$images_captcha_html="";
$images_captcha_in=array();
while ($i!=5){
$rand = rand(0,sizeof($this->picto)-1);
if(!in_array($rand,$images_captcha_in)){
$_SESSION['captcha-'.$i]=rand();
$rand_item = rand(0,10000);
$_SESSION['item-'.$rand_item]=$this->picto[$rand];
$images_captcha_html.="<li class='captcha-". $i ."' id='captcha-". $i ."' >
<img id='" . $_SESSION['captcha-'.$i] . "' src='" . $this->captachDir . "/item.php?img=" . $rand_item . "' alt='captcha pitco' />
</li>";
$images_captcha_in[]=$rand;
$i++;
}
}
$rand = rand(0,4);
$_SESSION['captcha'] = $rand;
$_SESSION['PictoText'] = $this->picto[$images_captcha_in[$rand]];
unset($_SESSION['key_picto']);//
return "<div id='captcha-content'>
<div id='captcha-left'>
<p id='captcha-text'>" . $this->text[0] ."<img src='".$this->captachDir."/image.php?l=".rand()."' >". $this->text[1] . "</p>
<ul id='captcha-task'> " . $images_captcha_html . " </ul>
</div>
<div id='captcha-right-content'>
<p id='captcha-right'></p>
</div>
<div id='captcha-reload'>
<img src='".$this->captachDir."/imgs/refresh.png' id='captcha-reload-img'>
</div>
<div id='captcha-bottom'><a href='http://www.jesurveille.fr'>Je Surveille</a> - AntiBot</div>
</div>";
}
function genKeyPicto(){
$key_picto=rand(0,9000);
$_SESSION['key_picto']=$key_picto;
return $key_picto;
}
function validate($post){
if(isset($_SESSION['captcha']) && isset($_SESSION['captcha-'. $_SESSION['captcha']]) && isset($_SESSION['captcha2'])
&&isset($post['captcha']) && $post['captcha']== $_SESSION['captcha-'. $_SESSION['captcha']]
&& isset($post['coucou']) && $post['coucou'] == $_SESSION['captcha2']
&& isset($post['coucou2']) && $post['coucou2']==true){
$this->validate=true;
}
if(isset($_SESSION['captcha']) && isset($_SESSION['captcha-'. $_SESSION['captcha']])) unset($_SESSION['captcha-'. $_SESSION['captcha']]);
if(isset($_SESSION['captcha'])) unset($_SESSION['captcha']);
if(isset($_SESSION['captcha2'])) unset($_SESSION['captcha2']);
return $this->validate;
}
function genSecondAccess($pass){
$rand = rand(0,400);
if(isset($_SESSION['captcha']) && isset($_SESSION['captcha-'. $_SESSION['captcha']]) && $_SESSION['captcha-'. $_SESSION['captcha']]==$pass){
$_SESSION['captcha2'] = $rand;
}
echo $rand;
}
}
?>
Conclusion :
Si vous avez un problème, vous pouvez poster un commentaire.