我在用户登录后立即将user_id
分配给我的会话,并在登录时向用户提供令牌,并将其存储在数据库中以保留记录。现在,我希望在用户单击“注销”时删除该令牌,
查看
<a href=" <?php base_url('user/logout') ?> ">logout</a>
控制器
public function logout(){
$uid = $this->session->userdata('user_id');
$this->load->model('loginmodel');
$lid = $this->loginmodel->deltoken($uid);
if($lid){
$this->session->unset_userdata('user_id');
return redirect(user);
}else {
echo "fail";
}
}
模型
public function deltoken($uid)
{
$query = $this->db->query("DELETE FROM user_auth WHERE id = '$uid'");
return TRUE;
}
但是在属于该特定id的数据库记录中没有被删除。我在这做错了什么? 感谢您的建议
答案 0 :(得分:1)
希望这会对您有所帮助:
您的链接中缺少echo
,应该是这样的:
<a href=" <?php echo site_url('user/logout') ?> ">logout</a>
您的模型deltoken
方法应如下所示:
public function deltoken($uid)
{
$uid = ! empty($uid) ? $uid : $this->session->user_data('user_id');
$this->db->where('id' ,$uid);
$this->db->delete('user_auth');
if ( $this->db->affected_rows() )
{
return TRUE;
}
else
{
return FALSE;
}
}