0

私は CakePHP 2.2.2 を使用してセッション情報を作成し、すべてのユーザーのログイン情報を保存して、サイト全体からアクセスできるようにしています。私が書いたコードは以下のとおりです。

    if (($GetPass == $this->data['Menu']['password'] && $GetUsers == $this->data['Menu']['username'])) {
        $this->Session->write('LoginData', array(
                    'FristName' => $SQL[$key]['User']['fristname'],
                    'SurName' => $SQL[$key]['User']['surname'],
                    'UserName' => $SQL[$key]['User']['username'],
                    'AccessLevel' => $SQL[$key]['Role']['title'],
                    'Email' => $SQL[$key]['User']['email']
                    ));
    } else {
       $this->Session->setFlash('Sorry Login Details Do Not Match Our Records', array('element' => 'failure'));

    }

これで私が抱えている問題は、私を壁に追いやるということです.両方の条件は常に真です. ユーザー名とパスワードがデータベース内にある場合でも、フラッシュメッセージを設定していますか? 私はなぜ見ることができないのですか?if ステートメントの「else」部分は、if ステートメント内で設定された条件が false の場合にのみ実行されるべきですよね? では、なぜフラッシュ メッセージが常に設定されているのでしょうか。

4

1 に答える 1

0

2 つの理由が考えられます。まず、CakePHP モデルから取得したパスワード フィールドが暗号化されている可能性があります。debug($GetPass);暗号化されているかどうかを使用して確認します。次に、コントローラで $this->data を使用しようとしています$this->request->data。あなたがやろうとしていることを行うための標準的な方法はここにあります: http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

于 2012-10-20T11:31:31.803 に答える