当我记录我今天的发现的时候,我首先很感激那些只做开发员工具的人员

我在只做留言板的时候,增加了一个设置回执查询编号的功能,使用该编号可以查询到所有使用该编号的留言,无论是否隐藏。我希望时候cookies写入一个时间,并设置60秒后过期,这样,如果我在设置查询回执编号的页面,如果指定cookies还存在,就让他设置,否则就显示超时(当然存在一系列可能利用的问题,当由于本人技术原因,所以请不要对此砰口水)。

在编写代码的时候,我发现一个问题,我添加留言的时候设置的cookies居然在设置回执编号页面无法调用出来。

谷歌浏览器有一个功能,在“选项”-“高级选项”-“内容设置”-“Cookie”-“所有Cookie和网站数据”,找到你的域名,然后查看cookies是否写入

在测试中,我惊奇的发现,居然有两个名字一样的cookie,仅仅是路径不同,我醒悟过来,是不是

 
  
  1. <?php  
  2. setcookie("messagetime",time(),time()+60);  
  3. ?> 

写法无法跨目录调用呢。在搜索引擎中搜索,并没有找到答案(可能是我用的百度的原因),我想起了手册,貌似手册中cookie还有可选设置。

在PHO手册中知道,后面还可以跟两个值,一个是路径,一个是域,而路径"/"也是相当于域,于是我修改为

 
  
  1. <?php  
  2. setcookie("messagetime",time(),time()+60,"/");  
  3. ?> 

,OK了

其实是一个很简单的问题,只是以为cookie和session作用范围一样,才导致这个错误