关于我的Google Recaptcha代码
关于我的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;
}
// 在此处处理成功的验证的代码
/>
关于我的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);
关于我的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{ // 在验证失败时的操作 }
通过以上方法,您可以解决代码中出现的问题。
关于我的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'];
你是否正确地进行了调试?
我们可以在聊天室中继续讨论。