1

これが私が使用しているキャプチャコードへのリンクですここをクリックしてください問題は、私が検証を行っているときに常に間違っていると言うキャプチャコードを投稿することです. 常にエラーメッセージが表示されるため、適切に検証されていません ポストバックごとに台無しにせずにセッション['captcha'] ['code']を使用するにはどうすればよいですか ポストバック後に変更する必要があり、セッションで異なるなど、何かが間違っていますしかし、私がprint($_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 に答える