``` Un Captcha (ReCaptcha) pour son site ```



  • Salut a tous, je connait beaucoup de monde qui voudrait utilisé un Captcha pour son site, pour les inscriptions, formulaire de contact… mais qui n'arrive pas a crée le leur ou qu'il n'arrive pas a installer des captcha tout fait.
    Nous allons voir dans ce tutoriel comment installé ReCaptcha avec un formulaire de contact (mais vous pouvez l'utilise sur n'importe quoi).

    I. Obtenir une clé publique et une clé privé

    Pour obtenir une clé publique et une clé privé, qui servirons a l'installation sur votre site web, c'est très simple ! Il vous suffit de vous inscrire sur le site ReCaptcha, ensuite on vous délivre une clé publique et une clé privé que vous gardé a porté de main.

    II. Création du formulaire de contact avec la mise en place de ReCaptcha

    Crée votre formulaire de contact (contact.php) a votre goût, nous allons utilisé un formulaire des plus basique avec les champs : email, nom, message. Il vous faudra la librairie de ReCaptcha dispible a ce Lien, il y a plusieurs fichiers dans un dossier, uploadé tout les fichiers dans un dossier nommé "recaptcha" sur votre FTP. Et hop, c'est parti :

    <form action="send.php" method="post">
    Email : <input type="text" name="email" /><br />
    Nom : <input type="text" name="nom" /><br />
    Message : <textarea name="message"></textarea><br /> 
    <!-- DEBUT RECAPTCHA -->
    <?php
    require('./recaptcha/recaptchalib.php');
    $publickey = "Votre clé public"; // La clé publique entre en jeux, vous devez la placé ici
    echo recaptcha_get_html($publickey);
    ?>
    <!-- FIN RECAPTCHA --><br />
    <input type="submit" value="Envoyé" /><input type="reset" />
    </form>
    

    III. Gestion PHP (send.php)
    Crée une page send.php, ce sera la page qui déterminera si le Captcha rentré est le bon ou non, sécurisera toutes les variables et enverra l'email.

    <?php require('./recaptcha/recaptchalib.php');
    if(isset($_POST) AND !empty($_POST['email']) AND !empty($_POST['nom']) AND !empty($_POST['message'])){
    /* DEBUT CAPTCHA */
    	$privatekey = "your_private_key";
    	$resp = recaptcha_check_answer($privatekey,
                                   $_SERVER["REMOTE_ADDR"],
                                   $_POST["recaptcha_challenge_field"],
                                   $_POST["recaptcha_response_field"]);
    	if($resp->is_valid){ // on vérifie que le captcha rentré est le bon et si c'est le bon on exécute la suite de notre code
    		$email = htmlspecialchars($_POST['email']);
    		if(preg_match('#^[w.-]+@[w.-]+.[a-zA-Z]{2,6}$#', $email)){
    			$nom = htmlspecialchars($_POST['nom']);
    			$message = htmlspecialchars($_POST['nom']);
    			$headers = 'From: "'.$nom.'" <'.$email.'>'."n"; 
    			$headers .= 'Return-Path: <'.$email.'>'."n"; 
    			$headers .= 'MIME-Version: 1.0'."n";
    			$message = 'Vous avez reçu un email du formulaire de contact du site <a href="http://site.com" target="_blank">Site</a>.'.
    			'<br /> Information : <br /><br />'.
    			'Email : '.$email.'<br />'.
    			'Nom : '.$nom.'<br />'.
    			'Message : '.$message.'';
    			if(mail("webmaster@domaine.com", "Email de contact", $message, $headers)){
    				echo 'Votre email a bien été envoyé au Webmaster de ce site web, il vous répondra dès que possible.';
    			}
    			else{
    				echo 'Un problème est survenu, votre email n'a pas pu être envoyé !';
    			}
    		}
    		else{
    			echo 'Veuillez rentré une adresse email valide du type : adresse@domaine.com !';
    		}
    	} 
    	else{ // Si le captcha rentré n'est pas bon on affiche au visiteur qu'il n'est pas bon
    		echo 'Le captcha rentré n'est pas valide !';
    	}
    /* FIN CAPTCHA */
    } 
    else{
    	echo 'Tout les champs n'ont pas été remplie !';
    }
    ?>
    

    Voila, maintenant vous savez mettre en place en Captcha pour les formulaires de vos site :mrgreen:



  • A part balancer des codes.
    En quoi explique tu la mise en place du Captcha ?



  • Je n'ai pas dis comment l'image se généré et tout sa d'accord mais j'explique comment le mettre en place. Je n'ai pas trop expliqué car il ni a rien a expliqué ce ne sont que des fonctions de la librairie qu'on utilise rien de plus…



  • Tu devrais expliquer; où et comment placer le code.
    Au lieu de simplement donner un code d'exemple .



  • Je croit que mon code "d'exemple" est assez commenté (au niveaux du captcha) pour que les utilisateurs ayant un minimum de connaissance en PHP puissent le comprendre.
    Après tu va me dire que tout le monde n'a pas un minimum de connaissance en PHP et je te répond que les internautes sans connaissance qui veulent crée un site avec du PHP eux même doivent passez par la case "Apprendre le php".

    Voila :wink:


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.