2013-02-16 81 views
1

這裏是驗證碼使用的驗證碼的鏈接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

回答

0

由於我無法驗證captcha.php文件的內容 - 我無法幫助解決您的問題。但是,這是一種可能性。

Your $ _SESSION ['captcha'] = captcha();對我來說似乎不正確{因爲我找不到captcha.php的源代碼}。如果它將會話設置爲與發佈的表單相同的頁面加載,那麼在使用print_r($ _ SESSION)調用時,如何確定它不是一個不同的驗證碼會話?如果你明白我的意思。在你的captcha()函數(captcha.php文件)中,它是否也設置會話,而不確認錯誤的帖子?因此,改變$ _POST的頁面加載?換句話說,它是否確保在驗證用戶輸入之前發佈表單時不會「重置」。

captcha.php代碼在哪裏? (「captcha.php」);你看起來缺少include(「captcha.php」);在session_start()之後;呼叫。那可能是你的問題。但是,不能確認。