Page 1 sur 1

captcha

Posté : 25 févr. 2012, 15:59
par casper62110
bonjour j ai récupérer se script que j améliorez après d un point de vu graphique mais
d'abord je voudrais savoir comment faire un captcha

avec le mot coca-cola (thème du site) posez question combien y a t'il de fois la lettre C .... combien de fois la lettre A ... ou la lettre O ...

merci d avance
$debug = 1; //0=off / 1=on
 $notification_mail = 1; //0=non / 1=oui 
 $adresse_mail = "[email protected]";
 $provenance_mail = "From: [email protected]";
 
 //****
 //Main
 //****
 
 //Récupère le commentaire
 $commentaire = $_POST['commentaire'];
 $site=$_POST['site'];
 //Extrait le nom de la page et l'utilise pour le nom du fichier de sauvegarde en ".txt"
 $script_name = $_SERVER['SCRIPT_NAME'];
 $pos = strrpos($script_name, "/");
 $path = substr($script_name, $pos+1, strlen($script_name) - $pos - 5).'.txt';
 if($debug == 1)
   
 
 //Gestion du cookies
 if(!isset($pseudo))
   {
   	$pseudo = $_POST['pseudo'];
    if($pseudo == "")$pseudo = "Anonyme";
    if($debug == 1)
      ;
  }
 else 
  if($debug == 1)
   echo "<br /><br />Cookies actifs pseudo = <br /><br />".$pseudo;

 //Enregistre et affiche les commentaires
 if(isset($_POST['submit']))
  save_comment($path,$pseudo,$site,$commentaire);
 else
 //Affiche les commentaires
   if(file_exists($path))
      ;  
 
 //Affichage du formulaire
 echo '
 <form enctype="multipart/form-data" name="comment_form" action="'.$_SERVER['PHP_SELF'].'" method="POST"> 
 <br />Votre Pseudo<br />
 <input name="pseudo" type="text" value="'.$pseudo.'" size="20" >
 <br />Site internet<br />
 <input name="site" type="text" value="http://" size="40" >
 <br />Ajouter votre commentaire ici:<br />
 <textarea name="commentaire" cols="70" rows="5"></textarea><br />
 <input type="submit" name="submit" value="Envoyer le commentaire" />
 <br /><br />
 </form>
 ';
 
 //*********
 //Fonctions
 //********* 

 function affiche_commentaires($path)
 {
  global $debug;
  if($debug == 1)
   echo "<br /><br />Affichage des commentaires<br />";
 
  $handletmp = fopen($path,"r");
  $tableau_content = file($path);
  fclose($handletmp);
     
  //Affichage des commmentaires  
  //***************************
  
  // boucle sur tous les elements
  $HTML  = '<style>.font_tableau{color: black; font-size: 10pt;}</style><br /><br />';
  $HTML .= '<center><table width="550">';
  $HTML .= '<tr><td align="center" bgcolor="#BEBEBE"><b>Vos impressions</b></td></tr>'; 
 
  for($i=0; $i < count($tableau_content); $i++)
  {
    if($i%2==0)
      {
       $HTML .= '<tr><td class="font_tableau" valign="center" align="left" bgcolor="#FFFFFF">';
       $HTML .= $tableau_content[$i].'</td></tr>';
      }
    else
     {
       $HTML .= '<tr><td class="font_tableau" valign="center" align="left" bgcolor="#BEBEBE">';
       $HTML .= $tableau_content[$i].'</td></tr>';
     }
  }
  $HTML .= '</table></center>';
  
  return $HTML;
 } 
 
 
 function save_comment($path,$pseudo,$site,$commentaire)
  {
   //Enregistrement du commentaire	
   //*****************************
   
   global $debug;
   global $notification_mail;
   if($debug == 1)
  ;
 
   global $adresse_mail;
   global $provenance_mail;
  
   if(file_exists($path))
     {
      $handle = fopen($path,"r");
      $tableau_content = file($path);
      fclose($handle);  
     }
   //remplace le retour à la ligne par <br /> et le \' par '
   @$commentaire=eregi_replace("\r\n","<br />",$commentaire);
   @$commentaire=eregi_replace("\\\'","'",$commentaire);   

   if(($commentaire != "")&&(($commentaire . "\r\n") != $tableau_content[count($tableau_content)-1]))
     { 
      $handle = fopen($path,"w"); 
      for($i=0;$i < count($tableau_content); $i++)
         {  
          if(($tableau_content[$i] != "")&&($tableau_content[$i] != "\r\n"))
          fwrite($handle,$tableau_content[$i]);
         }     
      $str_out = $pseudo." le ".date('d.m.y à H:i:s').' '.$site."\r\n".$commentaire."\r\n";
      fwrite($handle,$str_out);   
      fclose($handle);
      if($notification_mail == 1)
        {
         $message = $pseudo." le ".date('d.m.y à H:i:s')."\r\n".$commentaire."\r\nhttp://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
         @mail($adresse_mail,"Nouveau commentaire de ".$pseudo,$message,$provenance_mail);
        } 
     }
   else
    {
     if($debug == 1)
      echo "<br /><br />Commentaire vide ou redondant!!!<br />";	
    }   
   echo Affiche_commentaires($path); 
 }
 
?>

Re: captcha

Posté : 26 févr. 2012, 15:02
par casper62110
Edit: "Captcha" j attend par la un système anti robot

Re: captcha

Posté : 26 févr. 2012, 16:13
par Ryle
Tu peux t'inspirer de ceci :
http://www.siteduzero.com/tutoriel-3-31 ... ement.html

Au lieu de générer un nombre au hasard, tu choisis une de tes questions/réponse au hasard et tu gardes le résultat dans la session pour le comparer :)