J'essaie de mettre en œuvre google captcha v2 sur un site web qui reçoit beaucoup de spam. Le captcha est en train de montrer et de travailler, mais le formulaire peut être soumis sans appuyer sur le captcha. J'ai cherché des questions similaires mais je n'ai pas trouvé de réponse qui m'aiderait.Formulaire Soumettre sans captcha
Il est le captcha de google V2
Forme:
<form action="mailer.php" method="post" onsubmit="return FrontPage_Form1_Validator(this)" language="JavaScript" name="FrontPage_Form1" enctype="multipart/form-data">
<input type="text" class="col-md-13 col-xs-12 name" name='name' placeholder='Name *'/>
<input type="text" class="col-md-13 col-xs-12 Email" name='Email' placeholder='Email *'/>
<input type="text" class="col-md-12 col-xs-12 Subject" name='Subject' placeholder='Subject'/>
<textarea type="text" class="col-md-12 col-xs-12 Message" name='Message' placeholder='Message *'></textarea>
<br>
<div class="captcha_wrapper col-md-12" style="margin-bottom: 10px;">
<div class="g-recaptcha" data-sitekey="6Ld-ryQUAAAAAJSKzJubdxYjigpiTfhk11e1P7o9">
</div>
</div>
mailer.php:
if ($_SERVER['REQUEST_METHOD'] == "POST") {
foreach ($_POST as $key => $value) {
$msg .= ucfirst ($key) ." : ". $value . "\n";
}
}
else {
foreach ($_GET as $key => $value) {
$msg .= ucfirst ($key) ." : ". $value . "\n";
}
}
//captcha section
$response = $_POST["g-recaptcha-response"];
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => '6Ld-ryQUAAAAALpIkTPN82doQhCFmiWrC14_UbYk',
'response' => $_POST['g-recaptcha-response'];
);
$options = array(
'http' => array (
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$verify = file_get_contents($url, false, $context);
$captcha_success=json_decode($verify);
//end of captcha section
mail($to, $subject, $msg, $headers);
if ($forward == 1) {
header ("Location:$location");
}
else {
include("index.html");
header('Location: ') ;
}
`
Merci. Toute aide est appréciée
Je sens que je dois mettre le code captcha intérieur si (isset())
Vérifiez votre valeur '$ captcha_success'. –
J'ai eu ce \t si (captcha_success- $> succès == false) { \t \t echo "
Vous êtes un bot Allez-vous
!"; \t} else if ($ captcha_success-> success == true) { \t \t echo "Vous n'êtes pas un robot!
"; \t} mais il serait toujours revenir « Vous êtes un bot » puis toujours envoyer un e-mail – Sam