php The solution to the problem that cookies cannot be deleted: first create a PHP sample file; then create a cookie through setcookie; finally set the validity period of this cookie to a time before the current time to clear the created cookie.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
PHP cannot delete 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);
I found that there is no problem under IE when exiting. However, when tested in Firefox, the login is normal and cannot exit. After checking the difference in cookie records in IE and Firefox, it was discovered after testing that the fourth parameter (legal path parameter) of setcookie() was not specified, so the error occurred when logging in and exiting. The path for setting cookies is different (Firefox is stricter, resulting in the reconstruction of various variables) [Recommended study: "PHP Video Tutorial"]
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']; }
The above is the detailed content of What should I do if I cannot delete php cookies?. For more information, please follow other related articles on the PHP Chinese website!