我在这里有这个代码,当我将值更改为其他内容时,我注意到了。我必须刷新页面一次而不是两次才能看到新值。
这与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,那么我必须刷新两次以查看页面上的新值。
答案 0 :(得分:1)
答案在这里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!';
}
}