嗨,目前我已经在我的php网站上实现了recaptcha v2,一切都很好。我已经添加了两个文本框,我可以在其中插入站点密钥和秘密密钥。,但问题是,即使键是错误的,仍然是recaptcha显示的,而对于错误的键,recaptcha v2总是失败的。
我读过这个文档,但是站点密钥没有ReCaptchaResponse,密钥是错误的。
错误键的例子
实际密钥
站点密钥:7 7LeAbKcdAAAAAOezcfoFK tekV_H2V0IzTy5rUn-
7LeAbKcdAAAAAMfyCxR7teg5VzB1Am5Q1jk_I6Tb 密钥:
错键
站点密钥:7 7LeAbKcdAAAAAOezcfoFK tekV_H2V0IzTy5rUn-
7LeAbKcdAAAAAMfyCxR7teg5VzB1Am6Q1jk_I6Tb 密钥:
在这里,在错误的钥匙,我只是改变了一个号码,但仍然是recaptcha不断显示。实际上,如果站点密钥和密钥是错误的,那么它就不应该显示。
我看过这个链接,它非常有用。但就我的情况而言,即使站点密钥和密钥都是正确的,我也会得到站点所有者的错误:站点密钥的无效域
请帮忙找出解决办法。
发布于 2022-02-21 05:04:58
Google不提供验证站点密钥或秘密密钥的方法。您应该确保您的秘密密钥和网站密钥匹配,然后才能进入。
发布于 2022-02-28 04:20:21
这里有一个答案,我们可以在服务器端(https://stackoverflow.com/a/27439796/7275579)验证recaptcha
<?php
$captcha;
if(isset($_POST['g-recaptcha-response']))
$captcha=$_POST['g-recaptcha-response'];
if(!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRET_KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']), true);
if($response['success'] == false)
{
echo 'Invalid';
}
else
{
// Proceed
}还要确保使用urlencode对captcha进行编码。
https://stackoverflow.com/questions/71162128
复制相似问题