1

这是我使用的验证码的链接点击这里问题是当我发布验证码时,它总是在我进行验证时说它不正确。它总是显示错误消息,因此它无法正确验证我如何使用会话 ['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;
        }   
    }
}
4

1 回答 1

0

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

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

captcha.php 代码在哪里?

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

于 2013-02-16T12:51:40.603 回答