Web HTML reCaptcha
Posté : 30 mai 2016, 19:51
Bonjour à tous et à toutes,
j'ai un problème que j'essaie de résoudre depuis deux jours malheureusement sans grand succès...
Je tente d'inclure dans une page Web HTML le reCaptcha:
voici le code HTML du formulaire:
un formulaire très simple, bien entendu j'ai ajouté:
maintenant là où ça devient impossible la partie PHP.
Voici le code qui est appelé pour envoyer le mail:
D'après la documentation de Google il faut utiliser POST pour récupérer la clé et la comparer avec celle de Google...
J'ai vraiment besoin d'aide j'espère que parmi vous je trouverais la réponse à ma question.
Merci à tous et à toutes.
PS.
Le script PHP de check devrait ressembler à quelque chose comme ceci:
j'ai un problème que j'essaie de résoudre depuis deux jours malheureusement sans grand succès...
Je tente d'inclure dans une page Web HTML le reCaptcha:
voici le code HTML du formulaire:
Code : Tout sélectionner
<form name="feedback_form" method="post" class="feedback_form">
<input type="text" name="field-name" value="Name" title="Name" class="field-name form_field">
<div class="clear"></div>
<input type="text" name="field-email" value="Email" title="Email" class="field-email form_field">
<div class="clear"></div>
<input type="text" name="field-subject" value="Subject" title="Subject" class="field-subject form_field">
<div class="clear"></div>
<textarea name="field-message" cols="45" rows="5" title="Message" class="field-message form_field">Message</textarea>
<div class="clear"></div>
<input type="reset" name="reset" id="reset2" value="Clear form" class="feedback_reset">
<input type="button" name="submit" class="feedback_go" id="submit2" value="Send Message!">
<div class="ajaxanswer"></div>
<div class="g-recaptcha" data-sitekey="SECRET"></div>
</form>
Code : Tout sélectionner
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
Voici le code qui est appelé pour envoyer le mail:
Code : Tout sélectionner
<?php
header('Content-Type: text/html; charset=utf-8');
function sendFeedback($feedback_email, $feedback_msg, $feedback_name, $feedback_subject) {
$admin_email = "MON MAIL";
if ($feedback_subject == "Subject" || empty($feedback_subject) ) {
$subj = "Email from your site";
} else {
$subj = $feedback_subject;
}
$message = "
<html>
<head>
<title>Email from your site</title>
</head>
<body>
<p><a href='mailto:".$feedback_email."'>".$feedback_name."</a> send this message:</p>
<p>".$feedback_msg."</p>
<p>".$subject."</p>
</body>
</html>
";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
if ($feedback_name!=="Name" && $feedback_email!=="Email" && !empty($feedback_email) && !empty($feedback_msg) && !empty($feedback_name) ) {
if ($feedback_email == "mail_error") {
echo "<span class='ajaxok'>Invalid email address.</span>";
} else {
mail($admin_email, $subj, $message, $headers);
echo "<span class='ajaxok'>Thank You! Your message has been sent.</span>";
}
} else {
echo "<span class='ajaxalert'>Please fill the required field.</span>";
}
}
sendFeedback($_POST['email'], $_POST['message'], $_POST['name'], $_POST['subject']);
?>
J'ai vraiment besoin d'aide j'espère que parmi vous je trouverais la réponse à ma question.
Merci à tous et à toutes.
PS.
Le script PHP de check devrait ressembler à quelque chose comme ceci:
Code : Tout sélectionner
<?php
$email;$comment;$captcha;
if(isset($_POST['email'])){
$email=$_POST['email'];
}if(isset($_POST['comment'])){
$email=$_POST['comment'];
}if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
if(!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$secretKey = "Put your secret key here";
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
echo '<h2>You are spammer ! Get the @$%K out</h2>';
} else {
echo '<h2>Thanks for posting comment.</h2>';
}
?>