我试图访问我刚刚在同一个域名的其他页面中设置的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中显示数组时,数组为空。
答案 0 :(得分:12)
您需要将Cookie的path
值设置为您域的根as per the docs:
setcookie("username", $username, time()+365*24*60*60, '/');
否则,它将被设置为当前工作目录,例如/PROC/
。因此,只有/PROC/
中的脚本才能使用该Cookie。
答案 1 :(得分:0)
签出,您的PHP setcookie定义在声明HEAD之前完成。如果不是,则不存储cookie。
因此,在发送标题或其他HTML实体之前,请在代码开头控制cookie。