要将PHP表单与Google Recaptcha POST一起发送到不同的URL,可以按照以下步骤进行操作:
$_POST
超全局变量获取用户提交的表单数据,并将Recaptcha响应存储在一个变量中。file_get_contents()
函数或者cURL库,向Google Recaptcha验证API发送POST请求,将Recaptcha响应和Secret Key作为参数传递。API将返回一个JSON响应,其中包含验证结果。header()
函数设置重定向,将表单数据POST到不同的URL。在header中指定目标URL和POST数据。以下是一个示例代码:
<?php
// 获取用户提交的表单数据
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$recaptchaResponse = $_POST['g-recaptcha-response'];
// 验证Recaptcha响应
$secretKey = 'YOUR_SECRET_KEY';
$verifyUrl = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $secretKey,
'response' => $recaptchaResponse
);
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$response = file_get_contents($verifyUrl, false, $context);
$recaptchaResult = json_decode($response);
// 检查Recaptcha验证结果
if ($recaptchaResult->success) {
// 验证成功,将表单数据POST到不同的URL
$postUrl = 'https://example.com/submit-form.php';
$postData = array(
'name' => $name,
'email' => $email,
'message' => $message
);
$postOptions = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($postData)
)
);
$postContext = stream_context_create($postOptions);
$postResponse = file_get_contents($postUrl, false, $postContext);
// 处理POST响应
// ...
} else {
// 验证失败,给用户一个错误提示
echo 'Recaptcha verification failed.';
}
?>
请注意,上述代码仅为示例,实际应用中可能需要根据具体情况进行修改和优化。
推荐的腾讯云相关产品:腾讯云验证码(Captcha)服务。该服务提供了验证码验证功能,可以用于替代Google Recaptcha。详情请参考腾讯云Captcha产品介绍:https://cloud.tencent.com/product/captcha
领取专属 10元无门槛券
手把手带您无忧上云