>  기사  >  백엔드 개발  >  PHP不同目录页面,cookie如何设置路径才能A创建cookie,B修改cookie

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

WBOY
WBOY원래의
2016-06-20 12:42:351508검색

问题描述如下:

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

A.PHP
$aa="yes";
setcookie("coo",$aa,time()+3600);
<script> <br />通过$.post调用了B.PHP <br />success : function 中获取返回值弹窗 <br /></script>


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的路径都设置成‘/’就好了,结帖,谢谢大神

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.