会话验证码总是错误的

时间:2013-02-16 07:21:19

标签: php

这是我使用click here的验证码代码的链接问题是,当我发布验证码时,它总是在我进行验证时说不正确。 它始终显示错误消息,因此它无法正确验证如何使用会话['captcha'] ['code']而不会弄乱每个帖子  有些事情是错误的,因为它必须在回发后改变,并且在会话中有所不同,但是当我打印($ _ 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;
        }   
    }
}

1 个答案:

答案 0 :(得分:0)

由于我无法验证captcha.php文件的内容 - 我对您的问题无能为力。但是,这是可能的。

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

captcha.php代码在哪里?

此外,您似乎缺少include(“captcha.php”);在session_start()之后;呼叫。那可能是你的问题。但是,无法确认。