cookie未设置无法正常工作
I am using remember option in my login page.I think I am doing right but when in logout I just amn't able to unset the cookie variable.I am using CI but for cookie I am using native cookie.What am I doint wrong?My code: in login controller:
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');
}
but to no avail. I just can't unset cookie and when user who has checked remember me option trys to logout it's not happening. Any help/suggestion is welcome.Thanks
I don't know what is the problem but I used jquery plugin for cookie delete {https://github.com/carhartl/jquery-cookie}. I included jquery.cookie.js and then on logout click I deleted the cookie set as $.removeCookie('remember_me')
我在登录页面中使用了记住选项。我想我做得对,但在退出时我只是' 能够取消设置cookie变量。我正在使用CI但是对于cookie我使用原生cookie。我做错了什么?我的代码: in登录控制器: p>
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' );
}
}
函数logout(){
$ thi s-> session-> unset_userdata('user_name');
$ this-> session-> unset_userdata('full_name');
$ this-> session-> unset_userdata('server') ;
$ data ['login'] ='注销成功。';
$ data ['class'] ='成功';
$ this-> session-> set_flashdata($ data);
/ *要取消设置cookie,我尝试了不同的方法,但没有用* /
setcookie('remember_me');
setcookie('remember_me','',$ time() - 60 * 60 * 24 * 365);
setcookie ('remember_me',false);
unset($ _ COOKIE ['remember_me']);
redirect('login');
}
code> pre>
但是 无济于事。 我只是不能取消设置cookie,当用户检查时记住我选项trys注销它没有发生。
欢迎任何帮助/建议。谢谢 p>
我不知道是什么 问题,但我使用jquery插件删除cookie { https://github.com/carhartl/jquery-cookie }。 我包括jquery.cookie.js然后在注销时点击我删除了cookie设置为$ .removeCookie('remember_me') p>
div>
I don't know what is the problem but I used jquery plugin for cookie delete {https://github.com/carhartl/jquery-cookie}. I included jquery.cookie.js and then on logout click I deleted the cookie set as $.removeCookie('remember_me') and it's working fine.Thanks for the suggestions and help.
Use this function please
delete_cookie()
And for native php cookie use
unset($_COOKIE['remember_me']);
Or use CI function as follows
setcookie('remember_me', null, -1);
That's all
with
unset($_COOKIE['some_cookie'])
you don't delete the Cookie on the browser, you unset the variabile $_COOKIE['some_cookie']
.
If you want delete the browser cookie you have to set the expiration date in the past:
setcookie("some_cookie", "", time()-3600);
If it doesn't work try setting properly the cookie domain.
Create:
setcookie('some_cookie', null, time() + 3600, "/");
Delete:
setcookie('some_cookie', null, time() - 3600, "/");