The way PHP clears cookies is to set the validity period of this cookie to before the current time. The implementation code is such as "setcookie('test',time() - 3600);".
The operating environment of this article: Windows 7 system, PHP version 7.1, DELL G3 computer
How to clear cookies with PHP? PHP cannot delete it COOKIE? Set the COOKIE validity period
PHP transparently supports HTTP cookies. Cookies are a mechanism that stores data on the remote browser side and uses it to track and identify users. Cookies can be set using the setcookie() or setrawcookie() functions. Cookies are part of the HTTP header, so the setcookie() function must be called before other information is output to the browser, which is similar to the restrictions on the header() function.
setcookie();
The way to delete a cookie is to set the validity period of this cookie to before the current time.
setcookie('test', 'true', time() + 300); // 创建 cookie //setcookie('test',time() - 3600 ); // 清除建立的 cookie //setcookie('test'); //只是将 $_COOKIE['test'] 的值清空 如果直接setcookie('test', ''); echo ' '; print_r($_COOKIE); //attay();
You will find that the $_COOKIE array is empty, not just $_COOKIE['test'] is empty , so winsock captured the packet and observed the returned
http header. It turned out to be: set-cookie:test=deleted; expires=Mon, 29-May-2014 10:22:15 GMT
Login:
setcookie('username', 'zhangsan', time()+1000, "/php100");
Exit:
setcookie('username', '', time()-3600);
It is found that there is no problem under IE when logging out, but when tested in Firefox, the login is normal and cannot log out. Check the difference in cookie records in IE and Firefox. After testing
, it was discovered that the fourth parameter (legal path parameter) of setcookie() was not specified, so the cookie path set when logging in and exiting was different (Firefox was stricter, resulting in the re-establishment of each Variable)
I found that there is no problem under IE when exiting, but when tested in Firefox, the login is normal and cannot exit. Check the difference in cookie records in IE and Firefox, and found out after testing
It turned out that the fourth parameter (legal path parameter) of setcookie() was not specified, so the paths of cookies set when logging in and exiting were different (Firefox was strict, which led to the reconstruction of various variables)
Example:
$value = 'something'; setcookie('TestCookie', $value, time() + 3600); setcookie('mytest', $value, time() + 3600, "~rasmus", ".maoge.com", 1); if (isset($_COOKIE['TestCookie'])) { echo 'TestCookie :' . $_COOKIE['TestCookie']; }
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to clear cookies in php. For more information, please follow other related articles on the PHP Chinese website!