Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中使用标头重定向到其他页面时丢失cookie_Php_Cookies - Fatal编程技术网

在php中使用标头重定向到其他页面时丢失cookie

在php中使用标头重定向到其他页面时丢失cookie,php,cookies,Php,Cookies,因此,我想在用户登录时创建一个cookie,然后将用户重定向到另一个页面。在第二页,我需要第一页的cookie。当我四处搜索如何将用户重定向到另一个页面时,每个人都告诉我们使用header()。然而,通过研究,我知道header函数将清除cookies。但我不确定我是否正确。如果这是真的,我该怎么办?有没有办法在不丢失cookies的情况下重定向 setcookie("id", $id, 86400 * 30); header("Location: index.php"); exit();

因此,我想在用户登录时创建一个cookie,然后将用户重定向到另一个页面。在第二页,我需要第一页的cookie。当我四处搜索如何将用户重定向到另一个页面时,每个人都告诉我们使用header()。然而,通过研究,我知道header函数将清除cookies。但我不确定我是否正确。如果这是真的,我该怎么办?有没有办法在不丢失cookies的情况下重定向

setcookie("id", $id, 86400 * 30);

header("Location: index.php");
exit();

Header函数just set将原始HTTP响应发送回客户端

Cookie存储在客户端的浏览器中,当客户端再次尝试连接到服务器时,浏览器将发送Cookie

简而言之,no头函数不会“删除”cookies

setcookie("id", $id, 86400 * 30);

header("Location: index.php");
exit();
但是,如果您担心函数(您不应该担心)

使用html/javascript还有其他的工作

HTML


Javascript

window.location.href='index.php';
//或
replace('index.php');

这应该可以。在这些调用之前,请确保没有任何其他输出——检查日志中的“Headers ready sent”(标题已发送)警告。那么您建议采用什么解决方案?上面提到的代码不会影响cookie。它应该按照Shinji希望的方式工作。答案应该解释如何解决问题。如果您认为代码没有问题,那么应该是注释。您好,我找到了问题的答案。使我的cookie在之前死亡的原因不是因为标题,而是过期日期。我将其设置为
86400*30
,基本上就是说,它将立即过期。只需向它添加
time()
,它就可以工作了。非常感谢您向我解释:)@Barmar:更新了其他解决方法。谢谢你的建议!