【发布时间】:2011-05-09 17:04:16
【问题描述】:
我在下面写了一个小 PHP 脚本来演示我的问题。像这样运行下面的代码:http://localhost/test.php?test=10,然后运行http://localhost/test.php?test=11,然后运行http://localhost/test.php?test=12,等等。你会看到在你的屏幕上回显的数字总是在url后面1位数字?!也许是因为我不能一个 cookie 并立即读取相同的 cookie?
//如果查询字符串有$test,存储在session中,cookie供以后使用。 如果($_GET[测试]){ $_SESSION['test'] = $_GET[test]; setcookie("test", $_GET[test], time()+60*60*24*30*12*10); //10年 } //如果用户稍后回来,则从cookie中获取$test if (isset($_COOKIE["test"])){ $_SESSION['test'] = $_COOKIE["test"]; } 回声“会话测试:”。 $_SESSION['test'];后来我用下面的代码解决了这个问题,但是解决的还不够好,我想知道为什么会这样!
这解决了它:
如果($_GET[cid]){ setcookie("campaignid", $_GET[cid], time()+60*60*24*30*12*10); //10年 $_SESSION['campaignid'] = $_GET[cid]; }elseif (isset($_COOKIE["campaignid"])){ $_SESSION['campaignid'] = $_COOKIE["campaignid"]; }【问题讨论】: