簡體   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