我在页面 test_cookie.php 中编写了一个简单的代码来处理Cookie。
if(isset($_GET['data'])) {
setcookie('test_cookie', $_GET['data'], time()+60*60*24*30);
}
echo 'Cookie name is: ' . $_COOKIE['test_cookie'];
现在,一旦将cookie设置为某个内容,并将值设置为其他内容(使用$ _GET),则内容值不会快速更改。如果有新值,我必须再次刷新它。
这是一个图片示例:
答案 0 :(得分:3)
是 - 只需在致电setcookie()
时明确设置:
if(isset($_GET['data'])) {
setcookie('test_cookie', $_GET['data'], time()+60*60*24*30);
$_COOKIE['test_cookie'] = $_GET['data'];
}
echo 'Cookie name is: ' . $_COOKIE['test_cookie'];
您的代码无法“快速”运行的原因是因为$_COOKIE
包含浏览器在当前请求中发送的Cookie,而setcookie()
会向此响应中的broswer发送Cookie标头。由于请求在响应之前,您需要等待下一个请求才能看到您刚设置的cookie。上面的代码通过假装我们刚刚发送的cookie在此请求中收到来解决这个问题。