4

我正在尝试访问我刚刚在同一域的其他页面中设置的 cookie,但它不起作用。当我这样做echo $_COOKIE时,新页面上的数组为空,但包含创建页面上的 cookie。

这是 /PROC/LOGIN.PROC.PHP 中的代码

//Set the cookie for 1 year.
setcookie("username", $username, time()+365*24*60*60);
setcookie("password", $password, time()+365*24*60*60); 

这是 /INC/HEADER.INC.PHP 中的代码

if (isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
include("pages/user.header.pages.php");

但是,当我尝试设置 cookie 或仅在 header.inc.php 中显示数组时,该数组为空。

4

2 回答 2

13

您需要根据文档path将 cookie 的值设置为域的根目录:

setcookie("username", $username, time()+365*24*60*60, '/');

否则,它将被设置为当前工作目录,这是/PROC/您的示例。因此,只有其中的脚本/PROC/才能使用该 cookie。

于 2012-10-01T17:19:31.907 回答
0

Check out, your PHP setcookie definition is done before declare HEADs. If not, the cookie is not stored.

So take control of your cookies at the beginning of code, before sending headers or other HTML entities.

于 2018-10-29T15:17:47.203 回答