[英]PHP Cookie and browser refresh confusion
我在这里有这段代码,当我将值更改为其他值时,我注意到了。 我必须刷新页面一次而不是刷新两次,以查看新值。
这与HTTP标头和超级全局变量有关吗? 或者为什么我必须刷新两次才能看到新值,为什么不刷新一次? 我试过在其他线程上阅读类似的问题,但至今仍不清楚为什么? 以及正在做什么。 有人可以给我一个清晰的解释,谢谢。
<?php
$name = "test";
$value = "hello";
$expire = time() + (60*60*24*7);
setcookie($name, $value, $expire);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>PHP</title>
</head>
<body>
<?php
$test = isset($_COOKIE["test"]) ? $_COOKIE["test"] : "";
echo $test;
?>
</body>
因此,如果我将值更改为500,则必须刷新两次以在页面上看到新值。
答案是在这里https://stackoverflow.com/a/17085896/2243372 。
尝试以编程方式刷新页面。 例:
<?php
if (isset($_COOKIE['test'])) {
echo 'COOKIE = ', $_COOKIE['test'];
} else {
setcookie('test', 'my-cookie-value', strtotime('+1 day'));
if ( ! isset($_GET['setcookie'])) {
header('Refresh: 0; url=?setcookie=done');
} else {
echo 'Your browser does not accept cookies!';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.