【发布时间】:2013-12-05 20:14:57
【问题描述】:
我在我的登录页面中使用了记住选项。我认为我做得对,但是在注销时我无法取消设置 cookie 变量。我使用的是 CI,但对于 cookie,我使用的是本机 cookie。什么是我做错了吗?我的代码: 在登录控制器中:
function index(){
if(isset($_COOKIE['remember_me'])){
redirect('index');
}elseif($this->input->post()){
$username = $this->input->post('username');
$password = $this->input->post('password');
$remember = $this->input->post('remember');
if($remember){
$time = time()+60*60*24*365;
setcookie('remember_me', $username , $time);
}
$this->session->set_userdata('user_name', $user_name);
$this->session->set_userdata('full_name', $full_name);
$this->session->set_userdata('server', $server->exchange_server);
redirect('index');
}else{
$this->load->view('login');
}
}
function logout(){
$this->session->unset_userdata('user_name');
$this->session->unset_userdata('full_name');
$this->session->unset_userdata('server');
$data['login'] = 'Logout Successfully.';
$data['class'] = 'success';
$this->session->set_flashdata($data);
/* To unset cookie i tried following different approach but to no avail*/
setcookie('remember_me');
setcookie('remember_me', '', $time()-60*60*24*365);
setcookie('remember_me', false);
unset($_COOKIE['remember_me']);
redirect('login');
}
但无济于事。我只是无法取消设置 cookie,并且当检查了记住我选项的用户尝试注销时,它没有发生。 欢迎任何帮助/建议。谢谢
我不知道是什么问题,但我使用 jquery 插件删除 cookie {https://github.com/carhartl/jquery-cookie}。我包括了 jquery.cookie.js,然后在注销时单击我删除了设置为 $.removeCookie('remember_me')
的 cookie【问题讨论】:
-
你什么时候调用
logout()函数?在这个函数中$time()-60*60*24*365似乎是0 -
@alesdario 没听清楚。你是什么意思?当用户想通过注销按钮注销时,我调用 logout() 函数。
-
setcookie('remember_me', '', $time()-60*60*24*365);应该是setcookie('remember_me', '', time()-60*60*24*365);或setcookie('remember_me', '', $time-60*60*24*365); -
@alesdario 不工作 :(
-
你为什么使用本机 setcookie 函数而不是 CI?
标签: php codeigniter cookies