关于我的Google Recaptcha代码

12 浏览
0 Comments

关于我的Google Recaptcha代码

我对这个谷歌Recaptcha还不熟悉。

我试图弄清楚为什么它不起作用。我尝试了几个其他的代码,它们也不起作用,我不知道为什么。

这是我的表单代码:

我已阅读并同意(数据保护和隐私政策)

这是我的PHP代码:

function post_captcha($user_response) {

$fields_string = '';

$fields = array(

'secret' => '_______________私钥_______________',

'response' => $user_response

);

foreach($fields as $key=>$value)

$fields_string .= $key . '=' . $value . '&';

$fields_string = rtrim($fields_string, '&');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');

curl_setopt($ch, CURLOPT_POST, count($fields));

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);

$result = curl_exec($ch);

curl_close($ch);

return json_decode($result, true);

}

// 调用post_captcha函数

$res = post_captcha($_POST['g-recaptcha-response']);

if (!$res['success']) {

// 当CAPTCHA未被勾选时发生的情况

echo '请返回并确保您勾选了安全性CAPTCHA框。
';

} else {

// 如果CAPTCHA成功完成...

// 在这里粘贴邮件功能或其他您希望发生的操作!

$send;

if( isset( $_POST['email_address'] ) )

{

$send="您的查询已成功提交。我们将尽快与您联系。";

send_message_to_agent( $_POST['full_name'], $_POST['phone_number'], $_POST['email_address'], $_POST['message'] );

}

else

{

$send="失败";

}

function send_message_to_agent( $full_name, $phone_number, $email_address, $visiter_message ){

$to = 'hello@world.com';

$subject = 'Hello World';

$message = '姓名:'.$full_name.'';

$message .= '电话号码:'.$phone_number.'';

$message .= '电子邮箱地址:'.$email_address.'';

$message .= '留言:'.$visiter_message.'';

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

mail($to, $subject, $message, $headers);

}

echo $send;

//die;

}

// 在此处处理成功的验证的代码

/>

0
0 Comments

关于我的Google Recaptcha代码问题, 加入了服务器IP后,一开始能正常工作一段时间,但现在无法再发送了。

出现问题的原因是可能是由于服务器IP的变化导致的。解决方法是检查服务器IP是否正确,并确保与Google Recaptcha的配置一致。可以尝试重新添加服务器IP并重新测试代码。

以下是可能的解决方法示例:

// 检查服务器IP是否正确

$server_ip = $_SERVER['SERVER_ADDR'];

if ($server_ip !== 'your_server_ip') {

$server_ip = 'your_server_ip';

}

// 重新添加服务器IP并重新测试代码

$recaptcha = new ReCaptcha('your_recaptcha_secret_key');

$recaptcha->setExpectedHostname($server_ip);

0
0 Comments

关于我的Google Recaptcha代码的问题出现的原因是没有正确引入reCAPTCHA API JavaScript库。解决方法是在代码中添加以下内容:

首先,需要在代码中包含reCAPTCHA API JavaScript库的引用:


然后,在表单中添加以下代码:

接下来,在发送动作的代码中进行以下更改:

$secret = 'SCREAT_KEY';
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success){
    // 在验证成功时执行的操作
} else{
    // 在验证失败时的操作
}

通过以上方法,您可以解决代码中出现的问题。

0
0 Comments

关于我的Google Recaptcha代码的问题:

问题出现的原因是没有传递IP地址,需要在代码中添加以下内容:

$fields = array(
    'secret' => '_______________PRIVATE_KEY_______________',
    'response' => $user_response,
    'remoteip' => xxx.xxx.xxx.xxx //your ip
);

解决方法是动态获取IP地址。可以通过以下链接获取IP地址:Ip Address

尝试了几次之后,它开始无法正常工作,我不知道为什么。

关于如何动态获取IP地址,你可以继续参考以下链接:Ip Address

我已经尝试过这个方法,但它仍然无法发送:'remoteip' => $_SERVER['REMOTE_ADDR'];

你是否正确地进行了调试?

我们可以在聊天室中继续讨论

0