PHP setcookie的错误使用姿势

嘿嘿嘿,被封面图骗进来了吧2333

cookie这玩意对于每个网页开发者来说都并不陌生

前言

几乎每个网页开发者都会用到cookie,因为它的通用性相当的广,无论在php中或者js中或者jsp中都会用到,只要是个网页都会用!

 

笔者最近在搞公司的一个项目,这个项目要求一套系统中得有N个子站点,子站点之间互不干扰,所以就得想个办法用于标示子站点,所以我就想了几套方案来做选择。

方案一

用户第一次访问系统时使用cookies记录用户访问的站点id,后续使用这个id来实现一些操作

方案二

通过php代码结合输出缓冲区和正则来实现url替换

方案三

将信息存入session,类似方案一

方案四

每个url都带上site这样一个参数,用全局变量记录

最终选用了方案四,这可能是个最普通的方法了,就是每个url都得添加。

坑(总结)

下面来说说坑在哪吧,其实坑就是cookie本身的原理,当我们设置一个cookies,其实浏览器并不会立刻生效,顾名思义也就是这次设置的cookies要下次才能生效,比如你这次设置了,浏览器在你下次刷新的时候才会把这个cookies同步过来,而不是设置了马上就能用,所以我就遇到了明明设置了第一次无效需要再刷新一次才能获取到这样的尴尬场景。

 

与此不同的是js,js则是立即生效,因为js是直接设置在本地。而php则需要一次刷新才能同步。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注