0
4

4 回答 4

4

您将 cookie 设置为立即过期:

setcookie("edgeUser", $_POST['userName'], time()+0);

将其设置为

setcookie("edgeUser", $_POST['userName'], time()+($howLongItWillLast));

编辑:Sudhir 还正确指出它在下一页加载之前将不可用。从文档

一旦设置了 cookie,就可以在下一页加载时使用 $_COOKIE 或 $HTTP_COOKIE_VARS 数组访问它们。

于 2012-08-22T09:17:21.387 回答
2

设置 cookie 后,可以在下一页加载时使用 $_COOKIE 访问它们并尝试设置 cookie

setcookie("edgeUser",  $_POST['userName'], time()+3600);  /* expire in 1 hour */
于 2012-08-22T09:19:03.710 回答
0

问题(来自错误)似乎是$_POST['userName']或者$_COOKIE['edgeUser'](取决于错误所在的行)是未定义的 - 这意味着它尚未设置,并且看到您实际设置了 cookie,我敢打赌它是未定义的用户名。确保你得到它,检查isset()

也可能是 cookie 在您回显之前过期 - 在这种情况下,请使用 Fluffeh 的解决方案。

于 2012-08-22T09:17:50.230 回答
0

您设置它并立即将其删除。如果您想“在用户关闭会话时删除”,您需要使用$_SESSION['edgeUser'] = $_POST['userName'];

于 2012-08-22T09:18:46.077 回答