cookie未设置无法正常工作

时间:2013-12-02 07:52:33

标签: php codeigniter cookies

我在登录页面中使用了记住选项。我认为我做得对,但是在注销时我无法取消设置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,当用户检查过时,请记住我选项trys注销它没有发生。 欢迎任何帮助/建议。谢谢

我不知道是什么问题,但我使用jquery插件进行cookie删除{https://github.com/carhartl/jquery-cookie}。我包括jquery.cookie.js然后在注销时点击我删除了cookie设置为$ .removeCookie('remember_me')

3 个答案:

答案 0 :(得分:5)

unset($_COOKIE['some_cookie'])

您没有删除浏览器上的Cookie,而是取消设置变量$_COOKIE['some_cookie']

如果要删除浏览器cookie,则必须设置过去的过期日期:

setcookie("some_cookie", "", time()-3600);

如果不起作用,请尝试正确设置Cookie域。

创建:

setcookie('some_cookie', null, time() + 3600, "/");

删除:

setcookie('some_cookie', null, time() - 3600, "/");

答案 1 :(得分:0)

请使用此功能

delete_cookie()

对于本机php cookie使用

 unset($_COOKIE['remember_me']);

或使用CI功能如下

setcookie('remember_me', null, -1);

这就是全部

答案 2 :(得分:0)

我不知道问题是什么,但我使用jquery插件进行cookie删除{https://github.com/carhartl/jquery-cookie}。我包含了jquery.cookie.js然后在注销时点击我删除了cookie设置为$ .removeCookie(' remember_me')并且它工作正常。感谢您的建议和帮助。