Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cookie unset not working properly

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')

like image 270
samjhana joshi Avatar asked Jan 11 '23 19:01

samjhana joshi


2 Answers

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, "/");
like image 51
alesdario Avatar answered Jan 16 '23 22:01

alesdario


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.

like image 39
samjhana joshi Avatar answered Jan 16 '23 21:01

samjhana joshi