Neden php olacak iki eşit şey eşit olduğunu söylüyor?

2 Cevap

Ben oturum kullanıcı bir md5 karma olarak depolanır doğru şifreyi girmiş görmek için çalışıyorum. i girilen şifre karma yankı zaman, veritabanında birinin tam karma maçlar, ama hala onun yanlış düşünüyor. İşte kod:

echo md5($_POST['pass']);

if ($user->match_password($_POST['pass']) == true) {

    ...

} else {

    ...

}

o ^ Yukarıdaki başka kodunu çalıştırmayı dener

class user {

    ...

    var $password;

    ...

    function user($id) {
    	global $DB;
    	$this->db = new db($DB['host'], $DB['user'], $DB['pass'], $DB['database']);

    	$this->user_id = $id;
    	$u_result = $this->db->run("select * from users where use_id = " . $this->db->escape($this->user_id));

    	...

    	$this->password = $u_reuslt[0]['password'];

            ...
    }

        ...

    function match_password($password) {
    	return ($this->password == md5($password));
    } 
}

2 Cevap

Sen değişkenleri typoed, yukarıdaki yorumu görmek.

E_ALL senin arkadaşın. , O)

DB parola alanını kontrol edin - MD5 parola doğru eklerseniz yeterli uzunluğa sahip olmadığı için, bu kesilebilir.

İkincisi, sütunun ne tür password? Bir varchar içinde depolandığında, bir MD5 karma sonuçları karıştırılmış olabilir, çünkü a tinyblob ya da BINARY(32) olmalıdır.

Bağlantılar:

http://www.experts-exchange.com/Web/Web_Languages/PHP/Q_21578660.html

http://forums.mysql.com/read.php?30,16535,16617#msg-16617