我如何从以前的url重发数据后,reCAPTCHA通过在同一页


How do I resend data from previous url after reCAPTCHA passed in the same page?

从这个

发送的数据

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