我正在尝试使用PHP存储的cookie来确定用户是否已登录。
我使用以下方法设置cookie:
else $keep_alive = time()+(86400 * 14);
setcookie("id",mysql_result($result, 0, "id"),$keep_alive, "/", "mydomain.com");
当我尝试获取'id'的值时,我可以使用以下内容检索它,只要我在发送标题之前这样做。
$id = $_COOKIE['id'];
但是,如果已经发送了页眉,则不会检索“id”的值。在发送标题后是否无法获取cookie的值,或者我错过了什么?
答案 0 :(得分:1)
Cookie由标头设置/发送。您无法两次发送标题,因此如果您已经发送了标题,则无法在此页面加载时设置Cookie。确保在发送cookie之前不打印任何内容,或者缓冲它(ob_start
等)。
答案 1 :(得分:0)
答案 2 :(得分:0)
原来问题是我试图在我的包含文件中获取cookie值,该文件仅适用于相对路径。所以http://www.example.com/directory/page.php必须在我的include语句中作为./directory/page.php引用,以便可以检索cookie。我不确定这是PHP的错误,还是他们打算让它以这种方式工作,但现在一切都很好。