【发布时间】:2019-06-05 19:33:20
【问题描述】:
我正在尝试重定向到在 Codeigniter 的会话中存储电子邮件的用户主页。我使用password_hash($this->input->post('password'), PASSWORD_DEFAULT)) 对密码进行哈希处理,它工作正常,但是当我尝试password_verify() 它时,它失败了。
这是我的模型
public function canLogin($email, $password) {
$this->db->where('email',$email);
$query = $this->db->get($this->tableName);
$row = $query->row();
if ($row) {
return password_verify($password, $row->password);
}
else {
return false;
}
}
这是我的控制器
public function loginValidation() {
// User Model Loaded in constructor
if ($this->user->canLogin($_POST['email'], $_POST['password'])) {
$session_data = array('email' => $_POST['email'] );
$this->session->set_userdata($session_data);
redirect('profile/personal','Refresh');
} else {
echo 'fail';
$this->session->set_flashdata('error', 'Invalid Username or Password');
// redirect('login','Refresh');
}
}
我不知道逻辑哪里出了问题,它每次都重定向到同一个登录页面,我正在尝试对其进行身份验证,将电子邮件存储在会话中并将其重定向到 profile/personal ,任何人都可以指出我错过了逻辑的地方?
【问题讨论】:
-
你确定这段代码正在运行吗?就像,也许登录表单操作没有设置,它提交给自己而不是
loginValidation路由。只是一个想法。 -
@ArtisticPhoenix 他不喜欢你的三元运算符。 :)
-
@Dharman 对,我记得,但为了提问,我将其详细说明为您的版本
-
@Don'tPanic 我很肯定代码正在运行,因为它总是回显失败作为 XHR 结果
-
@YashKaranke 密码列的长度是多少?
标签: php codeigniter login passwords