Heim >Backend-Entwicklung >PHP-Tutorial >PHP不同目录页面,cookie如何设置路径才能A创建cookie,B修改cookie

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

WBOY
WBOYOriginal
2016-06-20 12:42:351545Durchsuche

问题描述如下:

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn