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 关注
- 167 浏览
添加回答
举报
