繁体   English   中英

在同一页面上显示 recaptcha 错误消息

[英]Display recaptcha error message on the same page

我有 2 页。

第 1 页有一个将值发布到第 2 页的表单

第 2 页有以下内容:

if (!$resp->is_valid) {

    // What happens when the CAPTCHA was entered incorrectly
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again. " .
         "(reCAPTCHA said: " . $resp->error . ")");

} else {

我如何在第 1 页的 recaptcha 控件下显示该值或更合适的值,而不是在第 2 页上显示die输出?

您可以在第 1 页上创建if (isset($_POST['submit')){...}块。 在此块中,您检查 recaptcha 并echo ""错误消息。

您应该将请求发布到 page1,并在那里添加 recaptcha 代码。 然后你可以设置一个名为$error的变量,如果有错误而不是调用die(...); . 然后,在recaptcha 表单之后,您可以检查是否设置了$error ,然后显示错误消息。 这将类似于以下代码片段:

if( isset( $error ) ) {
    echo '<p class="error">' . $error . '</p>';
}

我希望这有帮助。

您可以将表单提交到第 1 页并检查那里的验证码是否正确:

  • 如果它不正确,您可以在表单本身附近的某处显示消息,
  • 如果正确,您可以设置 cookie / 设置一些会话变量并重定向到第 2 页,

另一种方式是,第2页,而不是die重定向回第1页,如果验证码不正确的(你可以重定向后藏汉设置一些会话变量显示错误第1页)

您在一个脚本中获取错误状态,但想在另一个脚本中使用该值。 它有下一个解决方案:1)使用 $_SESSION 数组在脚本 2 中保存验证状态:

if (!$resp->is_valid) {

    // What happens when the CAPTCHA was entered incorrectly
    $_SESSION['error_status'] = $resp->error;

} else {

在脚本 1 中:

if ($_SESSION['error_status']){
    echo "<p class='error'>{$_SESSION['error_status']}</p>"
}

2) 或者你可以在 header('Location: http://you_site.com/?error_status='.$error_code ); 中添加 error_status; 在第二个脚本中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM