所以我设法创建了一个cookie并且在我的Windows 10计算机下在3种不同的浏览器中完美运行,它在safari和chrome下完美地工作,但是我的2个朋友无法在他们的探险家下找到cookie。 Windows 7。
操作系统是否会影响cookie的写入方式?
下面是代码:
flush();
header("Location:http://www.go2battle.net/prueba.php");
setcookie("go2battle", $_POST['Usuario'], time()+31556926, "/", "www.go2battle.net");
exit();
我用pr_dump:
在prueba.php中编写cookievar_dump($_COOKIE['go2battle']);
对我来说,在我测试过的每一个场景中都能完美运行,让我知道是否有什么问题,或者操作系统的兼容性问题导致我的Windows 7朋友无法写入cookie,因为返回值为NULL。 / p>
谢谢。
答案 0 :(得分:0)
flush()
告诉PHP立即输出/打印任何缓冲的内容,这意味着您无法再发送标头,并且Cookie会通过Set-Cookie
标头设置。
这个 应该意味着您不应该使用该代码获取cookie(也不是重定向),但我想您的问题意味着您的朋友实际上正在运行他们的代码自己的机器,而不是只访问您提供的URL
这可以解释悖论,因为有问题的输出可能是PHP E_WARNING
,E_NOTICE
等消息,而你的朋友不知道这些消息是否被禁用,因此你有输出打印,他们没有。
最后一段只是一个猜测,flush()
有效地"不允许"之后发送标题,在这种情况下,您可能只是以前以另一种方式设置该Cookie。