你好,我有一个问题。
当没有可用的cookie时,我使用下面的函数创建一个cookie。
问题是,当浏览器被关闭或再次打开时,这个函数再次创建Cookie…即使它已经存在了……所以每次用户打开和关闭浏览器,这个cookie就会被创建一次又一次。
这对我来说真的很糟糕。如何避免这个问题?
我的函数出了什么问题?
感谢 <?php
function GenerateTuittingID()
{
$todaydate = date('Ymd');
$time = mktime(date('G'), date('i'), date('s'));
$NowisTime = date('Gis', $time);
$random_numbers = substr(number_format(time() * rand(), 0, '', ''), 0, 10);
$random = $random_numbers . $todaydate;
if (!isset($_COOKIE["tuittingID"])) {
setcookie("tuittingID", $random, mktime(0, 0, 0, 12, 31, 2015));
}
}
?>
我看你的代码没有问题
- 问题在用户的浏览器
- 脚本的另一部分有另一个问题
cookie 永远不能重复创建——
如果它已经存在,那么它将被覆盖,否则,如果它不存在,它将被创建。请确保浏览器在关闭时不会清除cookie。
1)打开浏览器设置,进入Privacy
.
2)点击Use custom settings for history
3)确保Keep Until
旁边的下拉框显示为They Expire
。如果没有,更新它并按ok。
编辑(刚刚看到你的评论)
设置cookie的路径和域名,以便从整个网站访问它们:
setcookie("tuittingID", $random, mktime(0, 0, 0, 12, 31, 2015),
'/', '.yourdomain.com');