Ger*_*ela 6 html php recaptcha
我的所有代码都准确地设置了 Google 记录 API 的方式,但它一直返回布尔值 false,我做错了什么吗?
<?php
if(isset($_POST['sendEmail'])) {
$privateKey = "__my_secret_key__";
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$privateKey&response=$response&remoteip=$remoteip");
$result = json_decode($url, true);
if($result->success == true) {
$name = strip_tags(trim($_POST['name_1']));
$surname = strip_tags(trim($_POST['surname_1']));
$userArray = [
'name' => $name,
'surname' => $surname,
];
var_dump($userArray);
} else {
echo "reCaptcha failed, please try again...";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
和我的 HTML 表单,其中包含从 Google 复制的 JavaScript 链接和我收到的数据站点密钥:
<html lang="en">
<head>
<meta charset="utf-8">
<title>Recaptcha Example</title>
</head>
<body>
<br>
<br>
<form action="" method="post">
<div class="form-row">
<input name="name_1" placeholder="Your name" type="text">
</div>
<br>
<div class="form-row">
<input name="surname_1" placeholder="Your surname" type="text">
</div>
<br>
<div class="form-row">
<div class="g-recaptcha" data-sitekey="__Site_key__"></div>
</div>
<br>
<input name="sendEmail" type="submit" value="Call me back">
<br>
<h4 id="response"></h4>
</form>
<script src='https://www.google.com/recaptcha/api.js'></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
小智 10
添加这个脚本:
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
function get_action(form)
{
var v = grecaptcha.getResponse();
if(v.length == 0)
{
document.getElementById('captcha').innerHTML="You can't leave Captcha Code empty";
return false;
}
else
{
document.getElementById('captcha').innerHTML="Captcha completed";
return true;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
并在提交按钮之前添加此 HTML:
<div class="g-recaptcha" id="rcaptcha" data-sitekey="site key"></div>
<span id="captcha" style="color:red" /></span> <!-- this will show captcha errors -->
Run Code Online (Sandbox Code Playgroud)