我是 cookie 的新手,并试图搜索我的问题,但找不到。
我的代码:
索引.php
<?php
if (isset($_GET["submit"])) {
setcookie("time",date('Y/m/d H:i:s'),time()+3600);
echo $_COOKIE["time"];
}
//Look if cookie isset, if not open overlay.
if (isset($_COOKIE["time"])) {
echo "<body>";
} else {
echo "<body onload='toggleOverlay(0)'>";
}
?>
当你在浏览器中打开页面时,执行 php 代码的底部,不应该有 cookie 'time',所以正文将与 onload="toggleoverlay()" 相呼应。这一切都很好。
然后当我点击提交按钮接受 cookie 时,页面重新加载,我的 php 代码的上半部分被执行,一个名为“time”的 cookie 被创建为当前时间。
然后应该执行底部部分,但它仍然与 onload 的主体相呼应,即使我刚刚创建了 cookie。
当我试图回应 cookie 时,我也收到错误(说 cookie 不存在)。当我再次手动重新加载页面时,它就可以工作了。但这非常令人沮丧,因为您需要接受 cookie。然后页面会重新加载,叠加层会再次打开。
我认为这是因为创建 cookie 需要一些时间,到那时其他代码已经执行,但是有人知道如何解决这个问题吗?
提前致谢。
心有法竹
子衿沉夜
jeck猫
随时随地看视频慕课网APP