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(); 
    } 

?> 
+0

问题:你为什么用2x'f(isset($ _ POST ['submit']))'?这是什么形式?也使用错误报告。最好的我可以提供 –

+0

无论我有什么是我从视频中得到的。我是一个新手。我肯定会接受更正。如果其他所有工作都正常,但我需要显示表格吗? – Newsong80

+0

看来你试过这个http://stackoverflow.com/q/40400611/1415724是密切相关的。所以,我不知道这个表单是什么样的,或者你试图获得的密钥是否有效。 –

不过,您确认,您要验证后处理,但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 
} 
} 

?> 
+0

现在它正在验证(我认为),但不是重定向。 – Newsong80

+0

我插入“// captcha failed”,用“echo'captcha failed'替换掉';'如果页面回显出来,那么验证失败。 – 2016-11-12 18:35:02

+0

现在它刷新页面并在页面顶部显示回显“captcha failed”,并且根本不显示表单。 – Newsong80