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

时间:2013-08-26 10:01:43

标签: php recaptcha

我有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 {

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您应该将请求发布到page1,并在那里添加重新访问代码。然后,如果出现错误而不是调用$error,则可以设置名为die(...);的变量。然后,在重新填写表单后,您可以检查是否设置了$error,然后显示错误消息。这看起来像下面的snipet:

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

我希望这会有所帮助。

答案 2 :(得分:0)

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

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

如果验证码不正确,那么第2页上的其他方式将是die重定向回第1页(并且您可以设置一些会话变量以及重定向后第1页上的显示错误)

答案 3 :(得分:0)

Yoг在一个脚本中获取错误状态,但想在其他脚本中使用该值。它有下一个决心: 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)或者你可以在标题中添加error_status('Location:http://you_site.com/?error_status='。$ error_code); 在第二个脚本