简体   繁体   中英

Why does the cookie expire?

On my website I set some cookies when users login so I can remember them so they don't have to login every time they re-visit the website.

I set the cookies in php using the following code:

setcookie("last_login", $loginID, time() + (86400 * 30), "/"); // 86400 = 1 day

And in my php.ini I even got this setting:

session.cookie_lifetime = 2592000

But even with all this when i close down the browser and re-open the website the cookies don't work in my php code and they dose not get logged in, but even more weird. Then when i try yo echo the cookie using:

echo $_COOKIE["last_login"];

It in the begining does not show up but sometimes after a few reloads it just randomly starts working with the cookie and it echo it out and you get logged in...?

So how can i make it so the cookies allways work within the next 30 days without it being weird?

Sometimes browsers clear cookies when closing them. A few things you can check just to be sure:

  • Is this happening in just one browser or all browsers you can get your hands on?
  • Is the time on your system correct?
  • Does setcookie return TRUE ? Check it: var_dump(setcookie("last_login", $loginID, time() + (86400 * 30), "/"));
  • Is the correct php.ini loaded? Check phpinfo() to see if the settings you changed are visible or not.

Edit:

Responding to the follow up question about the domain (see comment): Yes you can.

setcookie("last_login", $loginID, time() + (86400 * 30), "/", "domain.com");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM