Captcha anti-spam non prise en compte

Résolu/Fermé
badouin - 6 mars 2012 à 12:53
 badouin - 7 mars 2012 à 20:12
Bonjour,


Je test mon site en local et pour un ajout de commentaire j'ai mis en place un system captcha anti-spam mais celui-ci n'est pas pris en compte car je peux cliquer sur envoyer autant de fois que je veux envoyer un commentaire... c'est pas génial, voila le code captcha dans le formulaire d'ajout de com:

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6Lf9A8sSAAAAAFOFiTr5U5vt-G_WjOmcQ1jJ7b1P"></script>

	<noscript>
  		<iframe src="http://www.google.com/recaptcha/api/noscript?k=6Lf9A8sSAAAAAFOFiTr5U5vt-G_WjOmcQ1jJ7b1P" height="300" width="500" frameborder="0"></iframe><br/>
  		<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
  		<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
	</noscript>



Ai-je fais une erreur?



A voir également:

11 réponses

Bonjour,
Tu as les clefs publique et privée à côté de toi.

1- Télécharge la librairie PHP : https://code.google.com/archive/p/recaptcha/downloads
Tu décompresses et tu mets les fichiers dans un dossier 'lib' par exemple au même endroit où se situe ton formulaire.

2- Ton formulaire
A rajouter au début :
<?php    
include('lib/recaptchalib.php'); // Ne pas oublier d'inclure    
?>


Puis à la place de ton script, tu mets ceci (clef_publique est ta clef publique) :
<?php    
echo recaptcha_get_html('clef_publique');    
?>


3- Vérification de ton formulaire (clef_privee est ta clef privée)
<?php     
include('lib/recaptchalib.php');    

// Le code est-il valide ?    
$reponse=recaptcha_check_answer('clef_privee',$_SERVER['REMOTE_ADDR'],$_POST['recaptcha_challenge_field'],$_POST['recaptcha_response_field']);    

if ($reponse->is_valid) {    
      // Ajout du commentaire dans le fichier    
}
1
J'ai bien essayé mais il m'affiche une erreur 500 sur le serveur.
0
Tout ça je dois le placer dans mon fichier html ou dans le fichier traitement.php qui gère mes commentaires? car moi j'ai mis dans le fichier html et le captcha a disparu :/
0
Utilisateur anonyme
7 mars 2012 à 00:25
Dans ton fichier php (et pas html, normal que ça ne fonctionne pas :D), tu rajoutes ton formulaire avec le captcha + l'affichage des commentaires.

Dans l'autre fichier php (traitement.php), tu mets la partie 3 de mon message + l'ajout des commentaires dans le fichier.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ok mais j'ai une erreur 500 sur traitement.php
0
voila mon code de traitement.php, ou dois-je mettre le code que tu m'as donné sans que ça me fasse d'erreur 500?

//Ouverture du fichier en écriture

$fp = fopen("/var/www/livredor.doc",a);



//On convertit les caracteres html

$nom = htmlspecialchars($_POST['pseudo']);


$message = stripslashes(nl2br(htmlentities($_POST['message'])));

$d = date ( "d/m/Y H:i:s" );



$page = "";


$page .= "<b>Par $pseudo</b>   <b>$d</b><br><p>$message</p><br><hr>\n";


if (!empty($_POST['pseudo']) && !empty($_POST['message']) ) 

//On rajoute le message

fwrite($fp,"$page" ,strlen("$page"));



//fermeture du fichier

fclose($fp);
header('Location: livredor.php');
?>

</body>
</html>
0
Tu devrais avoir quelque chose comme ceci :
<?php      
include('lib/recaptchalib.php');     

// Le code est-il valide ?     
$reponse = recaptcha_check_answer('clef_privee',     
        $_SERVER['REMOTE_ADDR'],     
        $_POST['recaptcha_challenge_field'],     
        $_POST['recaptcha_response_field']);     

if ($reponse->is_valid) {     
   if (!empty($_POST['nom']) && !empty($_POST['message'])) {      

       //Ouverture du fichier en écriture     
       $fp = fopen("/var/www/livredor.doc","a+");     

      //On convertit les caracteres html     
      $nom = htmlspecialchars($_POST['nom']);         
      $message = stripslashes(nl2br(htmlentities($_POST['message'])));     
      $d = date ( "d/m/Y H:i:s" );     
      $page = "";    
      $page .= "<b>Par $pseudo</b>   <b>$d</b><br><p>$message</p><br><hr>\n";    

      //On rajoute le message     
      fwrite($fp,"$page" ,strlen("$page"));     
       
      //fermeture du fichier     
      fclose($fp);     
   }     
}     
 header('Location:livredor.php');     
?>  


Si tu as toujours une erreur 500, ça vient du serveur et là, je ne peux rien faire.
0
J'ai toujours l'erreur 500... mais merci quand meme pour le coup de main.Je précise que c'est un serveur apache tournant localement sur unbutu 10.04, quelqu'un a une idée?


Un site sans livredor c'est embetant...
0
OK apparemment c'était un problème de droit, j'ai plus d'erreur 500, mais la je ne peux plus rien posté meme en mettant le bon captacha...
0
Je comprends pas je pense que le code est bon, la clé publique et dans le formulaire linké sur google et la privée dans traitement.php, qu'est-ce qui bloque encore?? c'est c*** ce truc
0
Un grand merci a vous, sujet résolu en faite j'avais fais une erreur dans la clé publique sur le formulaire :oO

Merci de ton aide Adenora :)
0