2

我正在使用函数 set cookie 来设置(id)cookie,如下所示:

$cookie_id = $insert_userid;
setcookie("id", $cookie_id, time() + 31556926, '/', 'www.example.com');

上面的代码工作正常。我正在使用 firefox 检查设置,并且那里有正确的 cookie。现在在我网站上的其他页面上,我想检查是否设置了 cookie。如果未设置 cookie,我将使用此代码进行重定向。无论是否设置了cookie,我都会以两种方式重定向。

<?php
if(isset($_COOKIE['id'])){
//do something.
}else{
header('Location: login.php');
}
    ?>

我该如何解决这个问题?

var转储结果是:

array(4) { ["link"]=> string(43) "http://www.zzz.com/zzz" ["__unam"]=> string(30) "a5caeed-1385397a335-7fca86ad-2" ["PHPSESSID"]=> string(26) "6khzzzzzzzzjd51i6hamm0" ["id"]=> string(10) "zzzzzzzzzz" } 

更新:我没有从我创建它的同一页面检查 cookie。

4

1 回答 1

2

为了帮助找到问题,试试这个:

var_dump($_COOKIE['id']); exit;

把它放在前面if。理想情况下,您应该看到 cookie 的值。如果您看到NULL,则 cookie 没有被传递。

如果它没有被通过,试着var_dump($_COOKIE); exit;看看你是否得到了一个数组,如果有,是否有一个id键。

确保正在发送 cookie,使用开发者工具或任何与您的浏览器等效的工具进行检查。

于 2012-07-04T20:02:24.443 回答