我在插入时使用 phpass 对密码进行哈希处理,如下所示
public function addAdmin(){
$this->load->library('phpass');
$this->load->database();
$psw = 'admin1234';
$hashed = $this->phpass->hash($psw);
$now = date("Y-m-d H:i:s");
$data = array(
'userid' => 'admin_user' ,
'userfname' => 'Admin' ,
'userlname' => 'Admin',
'userdname' => 'Admin' ,
'useraddress' => '20/72,Vidarshana Mawatha, Galawilawatta, Homagama' ,
'usercountry' => 'Sri Lanka',
'usercontactno' => '0112-892199' ,
'userlastlog' => $now ,
'userpassword' => $hashed ,
'userpermission' => '1',
'useremail' => 'dilukshanmahendra@gmail.com'
);
$this->db->insert('ecom-user', $data);
echo "Successfully Added!";
}
但是,当我在登录时输入相同的用户 ID 和密码(正确的用户 ID 和密码)并通过将其与存储的用户名和密码进行匹配进行验证时,它会在我预期为“1”的情况下返回“0”
public function validateLogin($userid,$userpass){
$this->load->library('phpass');
$this->load->database();
$hashed = $this->phpass->hash($userpass);
$this->db->select('*');
$this->db->from('ecom-user');
$this->db->where('userid', $userid);
$this->db->where('userpassword', $hashed);
$result = $this->db->get();
echo $this->db->last_query();
echo '<br/>'.$result->num_rows();
}
请有人帮我解决这个问题
最佳答案
最好看看here 同时,修剪您用于登录和注册新用户的所有输入字段!
关于mysql - phpass 将输入密码与存储的密码进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450567/