会话验证码始终是错的

问题描述:

这里是验证码使用的验证码的链接click here问题是,当我发送验证码时,当我进行验证时,总是说它不正确。 它总是显示错误消息,所以它没有正确验证我如何使用会话['captcha'] ['代码']没有它搞砸每一个帖子回 有些东西是错误的,它必须改变后发回和不同会话,但是当我打印($ _ SESSION)时,输入并匹配验证码的值就是这个值。会话验证码始终是错的

PHP:全部在同一页上。

<?PHP 
session_start(); 
$_SESSION['captcha'] = captcha(); 
$captcha_code = $_POST["captcha_code"]; 

if(isset($_POST["captcha_code"])){ 
    do verification here // 
    if(....) { 
     if(strtolower($captcha_code) != strtolower($_SESSION["captcha"]["code"])) {     

      $error_message .= "<li>The code you entered is incorrect.</li>";  
      $hasError = true; 
     } 
    } 
} 
+0

检查帖子后创建会话!通过这种方式,您可以在将其与发布进行比较之前创建新的会话。这就是它总是错的:) – 2013-02-16 13:03:50

由于我无法验证captcha.php文件的内容 - 我无法帮助解决您的问题。但是,这是一种可能性。

Your $ _SESSION ['captcha'] = captcha();对我来说似乎不正确{因为我找不到captcha.php的源代码}。如果它将会话设置为与发布的表单相同的页面加载,那么在使用print_r($ _ SESSION)调用时,如何确定它不是一个不同的验证码会话?如果你明白我的意思。在你的captcha()函数(captcha.php文件)中,它是否也设置会话,而不确认错误的帖子?因此,改变$ _POST的页面加载?换句话说,它是否确保在验证用户输入之前发布表单时不会“重置”。

captcha.php代码在哪里? (“captcha.php”);你看起来缺少include(“captcha.php”);在session_start()之后;呼叫。那可能是你的问题。但是,不能确认。