php SetCookie可以在Firefox中工作,但不能在IE中工作
我有两个php脚本 test.phpphp SetCookie可以在Firefox中工作,但不能在IE中工作,php,internet-explorer,session,cookies,setcookie,Php,Internet Explorer,Session,Cookies,Setcookie,我有两个php脚本 test.php <?php header("location: test2.php"); setcookie("test", "8kFL4IZfjkBmV7AC", time()+60*60, '/'); exit; ?> 然而,在IE6中,我得到以下信息: array 'test' => string '8kFL4IZfjkBmV7AC' (length=16) array 'PHPSESSID' => string 'XXXXX
<?php
header("location: test2.php");
setcookie("test", "8kFL4IZfjkBmV7AC", time()+60*60, '/');
exit;
?>
然而,在IE6中,我得到以下信息:
array
'test' => string '8kFL4IZfjkBmV7AC' (length=16)
array
'PHPSESSID' => string 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (length=32)
注意:我故意把上面的PHPSESSID去掉
有人知道我哪里出了问题,为什么IE6没有显示我的饼干吗
提前感谢一个浏览器可以比另一个浏览器更快地响应您正在执行的标题重定向 尝试将命令转过来:
setcookie("test", "8kFL4IZfjkBmV7AC", time()+60*60, '/');
header("location: test2.php");
看看您的示例,您首先得到了header(),然后是setcookie()。
首先尝试设置cookie(),然后执行header() 我也有这个问题。我在php网站上从某人那里注意到了这一点 在重定向页面上设置cookie时,cookie必须在调用header('位置:…')之后设置
我仍然不确定您是否正在使用本地主机环境?要测试的IE?如果是这样,这可能会导致设置cookie出现一些问题。我的建议是为setcookie设置域字段,如果您正在本地主机上工作,请尝试以下操作:
setcookie(“username”、“George”、false、“/”、false)代码>或设置一个服务器名为localhost以外的vhost,并将其用于域
在域中设置cookie类似于:
setcookie(“test”,“8kFL4IZfjkBmV7AC”,time()+60*60,“/”,“.domain.com”)代码>
希望这能帮到你。一些浏览器在用户交互之前阻止cookie的设置。我知道Safari有,我相信IE也是这样。基本上,从您的站点收到的第一个响应将忽略所有cookie。我怀疑,如果您尝试以下方法,它将按预期工作:
test0.html
<html>
<body>
<a href="test1.php">force user interaction</a>
</body>
</html>
test1.php
<?php
header("location: test2.php");
setcookie("test", "8kFL4IZfjkBmV7AC", time()+60*60, '/');
exit;
?>
test2.php
<?php
var_dump($_COOKIE);
?>
<?php
var_dump($_COOKIE);
?>
我已经这样做了,还将sleep(2)放在这两行之间,但仍然没有区别:-(这些语句的顺序应该对响应没有影响。根据RFC 2616(HTTP 1.1)第6.1节(),Status
头是响应的第一行,后面是其他头(cookie就是其中之一)。