PHP Cookie和浏览器刷新混乱

时间:2014-08-01 06:16:47

标签: php

我在这里有这个代码,当我将值更改为其他内容时,我注意到了。我必须刷新页面一次而不是两次才能看到新值。

这与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,那么我必须刷新两次以查看页面上的新值。

1 个答案:

答案 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!';
    }
}