Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在验证是否正确填充时,reCAPTCHA不起作用_Php_Recaptcha - Fatal编程技术网

Php 在验证是否正确填充时,reCAPTCHA不起作用

Php 在验证是否正确填充时,reCAPTCHA不起作用,php,recaptcha,Php,Recaptcha,在注册期间,我必须在我的项目中使用reCAPTCHA。我去的问题-即使用户提供正确的输入和填写验证码,他并没有注册。仅出现0个错误,但数据库中未附加任何数据。没有reCAPTCHA,它工作得很完美。 我测试了代码。在我看来,if($obj->success)(第29行)有问题。变量的值在此行之后不变。我尝试搜索解决方案,但我只得到相同的解决方案或验证码 代码: 我认为这是因为没有设置$a和$b的值 else if(empty($_POST['g-recaptcha-response'])){

在注册期间,我必须在我的项目中使用reCAPTCHA。我去的问题-即使用户提供正确的输入和填写验证码,他并没有注册。仅出现0个错误,但数据库中未附加任何数据。没有reCAPTCHA,它工作得很完美。 我测试了代码。在我看来,
if($obj->success)
(第29行)有问题。变量的值在此行之后不变。我尝试搜索解决方案,但我只得到相同的解决方案或验证码

代码:


我认为这是因为没有设置
$a
$b
的值

else if(empty($_POST['g-recaptcha-response'])){
        $a= $_POST['g-recaptcha-response'];
        $b = $_SERVER['REMOTE_ADDR'];
        $RegisterErrorMessage = 'Wypelnij captche !';
        }else
因此,只有当recaptcha响应为空时,才会设置
$a
$b
。您能试着打印
$captcha\u url
吗?它很可能设置不正确

所以改变

$captcha_url = "https://www.google.com/recaptcha/api/siteverify?secret=6Ld6LRM**YOUSECRETKEY***1VO&response=$a&remoteip=$b";


当我想要回显时,什么也没发生,我不能按注册按钮。var_dump显示如下内容:。google.com/recaptcha/api/sitevirify?secret=MYSECRETKEYHERE&response=&remoteip=yup。这是因为没有设置
$a
$b
。在从base中获取结果后,我移动了$a和$b,url更改,但仍然没有任何内容附加到base中。我已编辑了我的答案。你现在能试着回显google recaptcha的URL吗?终于成功了。第五种方法。对其他人来说。我们不需要任何函数来检查,所以所有44行之后都可以删除。不要写第28行和第29行:$verifyResponse=file\u get\u contents($url);$responseData=json_解码($verifyResponse);if($responseData->success){此处的完整代码:从此处获取的部分解决方案:
$a= $_POST['g-recaptcha-response'];
$b = $_SERVER['REMOTE_ADDR'];
$captcha_url = "https://www.google.com/recaptcha/api/siteverify?secret=6L****YOURSECRETKEY***&response=$a&remoteip=$b";