欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP不同目录页面,cookie如何设置路径才能A创建cookie,B修改cookie

程序员文章站 2022-04-21 13:07:10
...
问题描述如下:

目录
/A.PHP
/PP/B.PHP

A.PHP
$aa="yes";
setcookie("coo",$aa,time()+3600);



B.PHP
$bb="no";
setcookie("coo",$bb.time()+3600)
echo $_COOKIE['coo'];

我本以为这样可以做到 弹窗输出 是no
结果出来的居然是yes

十分不解,想问各位大神是否是路径问题导致的呢?


回复讨论(解决方案)

对,是路径问题
/A.PHP 中设置的 cookie 路径默认为 /
/PP/B.PHP 中设置的 cookie 路径默认为 /PP/

另外,/PP/B.PHP 中刚设置的 cookie,要到下一次访问时 $_COOKIE 才有值

对,是路径问题
/A.PHP 中设置的 cookie 路径默认为 /
/PP/B.PHP 中设置的 cookie 路径默认为 /PP/

另外,/PP/B.PHP 中刚设置的 cookie,要到下一次访问时 $_COOKIE 才有值


大神我初学,只会设置到时间,路径的话看网上说的挺含糊的那两个路径参数怎么写呢,我想在B里面路径设置在a那里,让b修改a生成的cookie。

$bb="no";
setcookie("coo",$bb.time()+3600 , '/')

谢大神指点迷津……

$bb="no";
setcookie("coo",$bb.time()+3600 , '/')



今天又试了一下

A.PHP
setcookie('coo','aa',time()+3600,'/');
B.php
echo $_COOKIE['coo'];
setcookie('coo','bb','3600');
echo $_COOKIE['coo'];


运行A
运行B
输出 bbbb
/*B明明是先输出再修改,再输出,为啥都是修改后的结果?*/

再次运行B
输出aaaa
/*为啥又变回去了呢*/

再次运行B
输出aaaa
/*居然不能再次修改了*/

再次运行A
运行B
输出bbbb

我这是遇到什么情况了呢?

大神不好意思还要麻烦你

AB的路径都设置成‘/’就好了,结帖,谢谢大神