ReCaptcha无法验证
问题描述:
我的reCaptcha无法验证。无论如何,它都让我通过。它发送电子邮件并重定向到感谢页面,但不验证reCaptcha。我错过了什么?这是我的PHP代码。我没有显示它,但我确实有正确的代码头和形式标签(从reCAPTCHA复制/粘贴)。感谢您提前提供任何帮助。ReCaptcha无法验证
<?php
if (isset($_POST['submit'])) {
$secret = 'MY SECRET KEY';
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip");
$result = json_decode($url, TRUE);
if ($result['success'] == 1){
}
}
if(isset($_POST['submit'])) {
$emailbody = 'Name: '.$_POST['name']."\n"
.'Phone: '.$_POST['phone']."\n"
.'Email: '.$_POST['email']."\n"
.'Message: '.$_POST['message'];
mail('[email protected]', 'More Information', $emailbody);
header('location: thankyou.php');
exit();
}
?>
答
不过,您确认,您要验证后处理,但if语句,在那里你确定验证是否是成功的......外面
该代码可以改为:
<?php
if (isset($_POST['submit'])) {
$secret = 'MY SECRET KEY';
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip");
$result = json_decode($url, TRUE);
if ($result['success'] == 1){
$emailbody = 'Name: '.$_POST['name']."\n"
.'Phone: '.$_POST['phone']."\n"
.'Email: '.$_POST['email']."\n"
.'Message: '.$_POST['message'];
mail('[email protected]', 'More Information', $emailbody);
header('location: thankyou.php');
exit();
} else {
// captcha failed
}
}
?>
问题:你为什么用2x'f(isset($ _ POST ['submit']))'?这是什么形式?也使用错误报告。最好的我可以提供 –
无论我有什么是我从视频中得到的。我是一个新手。我肯定会接受更正。如果其他所有工作都正常,但我需要显示表格吗? – Newsong80
看来你试过这个http://stackoverflow.com/q/40400611/1415724是密切相关的。所以,我不知道这个表单是什么样的,或者你试图获得的密钥是否有效。 –