从这个
发送的数据www.example.com/modules/liaise/index.php ? form_id = xxx
正常情况下,提交后,页面重定向到
www.example.com/modules/liaise/index.php并发送邮件。
我想把reCAPTCHA放在同一个文件(index.php)中。
谷歌验证码:
require_once "recaptchalib.php";
// your secret key
$secret = "secret key";
// empty response
$response = null;
// check secret key
$reCaptcha = new ReCaptcha($secret);
// if submitted check response
if ($_POST["g-recaptcha-response"]) {
$response = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
if ($response != null && $response->success) {
//send mail
} else {
echo '
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
<div id="html_element"></div>
<script>
var onloadCallback = function() {
grecaptcha.render("html_element", {
"sitekey" : "sitekey",
"callback" : correctCaptcha
});
};
var correctCaptcha = function(response) {
location.reload();
};
</script>';
}
每当我通过reCAPTCHA和页面重新加载,reCAPTCHA再次显示。我知道数据从前一页www.example.com/modules/liaise/index.php?form_id=xxx仍然在那里使用
foreach($_POST as $key=>$value)
{
echo "$key=$value";
}
是否有任何方式,我可以重新发送数据从以前的url后reCAPTCHA在同一页传递?我是编码新手。请具体一点。非常感谢!
如果你想重新发送你的数据作为邮件,你可以使用这样的东西:
if (isset($_POST['form-input'])) {
// Send mail
}
并且每次您重新加载页面并且Post数据不为空或空白时,它将运行该代码。
如果你想让reCAPTCHA
重新加载成功,我想说这破坏了reCAPTCHA
的安全性
我也看到你有一个错别字,esle
应该是else
。