繁体   English   中英

PHP Cookie和浏览器刷新混乱

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM