2016-06-14 9 views
0

私は入力 'pass'と 'pass'をデータベースから比較しようとしています。一致する場合、ユーザーは登録フォームに進みます。同じパスワードの値を比較するとfalse cakephp

両方のパスワードが同じ値であっても、「パスワードが正しくありません」という偽の結果が表示され、通知が表示されます。 私は、CakePHP 2.8を

使用していますこれは私が今持っているコードです:

public function checkCodeRespondent() { 

    $password = $this->data['Respondent']['pass']; 

     if (isset($password) && !empty($password)) 
     { 

      $respondent = $this->findByPass($password); 
      debug($respondent); 

      if ($this->data['Respondent']['pass'] != $respondent['pass']) { 


       print 'password is not correct'; 
      } else { 
       print 'password is correct'; 
      } 


     } 

そして、これはデータベース

public function findByPass($pass) { 

    $respondent = $this->Respondent->find('first', array('conditions' => array('pass' => $pass))); 
    return $respondent; 
} 
+0

いずれもハッシュ化されていません。 – user2314339

答えて

1

パスワードはハッシュ化されていない場合だけで試してみてください。

public function checkCodeRespondent() { 
$password = $this->data['Respondent']['pass']; 
$condition = array('Respondent.pass'=>$password); 
if($this->Respondent->hasAny($condition)){ 
print 'password is correct'; 
     } else { 
      print 'password is not correct'; 
     } 
} 

あなたがすべてで複数の機能を必要としませんが...

+0

Thxはこのため大変です。それは働いている。だから、これはハッシュされていないときだけ機能しますか? – user2314339

+0

もちろん、これはいつも働いています...あなたのパスワードがハッシュされた場合は、別の条件も追加されてしまいます。 –

+0

ちょっと不思議です:)あなたはどのように条件を追加しますか?多分それは別のプロジェクトのために便利になるでしょう – user2314339

0

Undefined index 'pass'

からデータを取得するための機能です

は、配列がKeyの値を参照していることを意味します。 eが設定されていないので、$this->data['Respondent']['pass']値が設定されていないか、または$respondent['pass']が設定されていません。両方を確認し、欠落しているものがあるかどうかを確認して、戻って欠落したデータの原因を見つけます。

デバッグ: print_r($this->data);の出力は何ですか?そして、print_r($respondent);の出力は、これらの配列の両方があなたが期待する形状ですか?

NB:パスワードでもあるため、 これらの値はいずれもハッシュ化されていますか?もしそうなら、はどちらもですか?

+0

あなたの速い応答のためのThx:あなたは正しい$ respondent ['pass']は値がnullです。 $回答者に値が設定されているので少し奇妙です。私は何が欠けていますか? – user2314339

+0

@ user2314339 'debug'関数は変数の値をクリアしますか? – Martin

+0

@ user2314339次の段階で ' - > findByPass($ password)'が有効な値を返さない理由を確認します – Martin

0

は、私はタイプミス:)

これを作りました

if ($this->data['Respondent']['pass'] != $respondent['pass']) 

この値:

if ($this->data['Respondent']['pass'] != $respondent['Respondent']['pass']) 

比較が魅力のようになりました

関連する問題