2 回答
TA貢獻1828條經驗 獲得超3個贊
在將響應發送回客戶端(瀏覽器)之前,不會設置 cookie。直到客戶端的下一個請求之后,它才在您的 PHP 中可用。
你可以做下一步。
<?php
$cookie_set = isset($_COOKIE['time']);
if (!$cookie_set && isset($_GET['submit']) {
setcookie('time', date('Y/m/d H:i:s'), time() + 3600);
$cookie_set = true;
}
if ($cookie_set) {
echo '<body>';
} else {
echo '<body onload="toggleOverlay(0)">';
}
TA貢獻1909條經驗 獲得超7個贊
我找到了一個半解決方案,如果提交頁面,重新加載頁面,然后在創建 cookie 后,我再次重新加載頁面并更改 index.php?提交到 index.php
像這樣
<?php
if (isset($_GET["submit"])) {
setcookie("time",date('Y/m/d H:i:s'),time()+3600);
echo $_COOKIE["time"];
header("Refresh:0; url=index.php");
}
//Look if cookie isset, if not open overlay.
if (isset($_COOKIE["time"])) {
echo "<body>";
} else {
echo "<body onload='toggleOverlay(0)'>";
}
?>
像這樣它可以工作,但它不是最好的解決方案。
- 2 回答
- 0 關注
- 151 瀏覽
添加回答
舉報
