php cookie fails because when the fourth parameter in setcookie is empty, it will only take effect in the current directory by default. The solution is to add the fourth parameter and the statement is "setcookie("id",$id , time() 36002430 ,'/');".
Causes and solutions for invalid PHP cookie settings
Use setcookie to set cookies on a page, For example
setcookie("id",$id, time()+36002430);
But after returning to the homepage, I found that it did not take effect. When using javascript:alert(document.cookie), it was empty, and $_COOKIE in PHP also had no data.
Go to the PHP official website to check the instructions for setcookie. The example on the official website is also like this, but after carefully looking at the parameter description, I discovered the problem.
The fourth parameter of setcookie is path
The path on the server in which the cookie will be available on. If set to ‘/’, the cookie will be available within the entire domain. If set to ‘/foo/’, the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
That is to say, if the fourth parameter is empty, it will only take effect in the current directory by default. Under normal circumstances, there is no problem.
But my site is set up with rewrite and index.php is hidden, so the set cookie is only valid on this page.
The solution is to add the fourth parameter
setcookie("id",$id, time()+36002430 ,'/');
For more related knowledge, please visit PHP Chinese website!
The above is the detailed content of What to do if php cookie expires. For more information, please follow other related articles on the PHP Chinese website!