2010-05-15 106 views
2

是否有可能使用php读取cookie过期时间? 当我print_r($_COOKIE)它输出:获取cookie过期

Array 
(
    [PHPSESSID] => 0afef6bac83a7db8abd9f87b76838d7f 
    [userId] => 1232 
    [userEmail] => [email protected] 
    [firstName] => user 
    [lastName] => user 
) 

所以我觉得$_COOKIE没有到期时间,是否有可能与其他一些功能?

+0

相关问题:http://stackoverflow.com/questions/2802760 – Gumbo 2010-05-15 11:19:21

回答

5

只有名称和值被发送到服务器,所以没有其他cookie数据可用。

如果你想延长它的持续时间,你可以简单地重新设置cookie - 这只是响应中的几个字节,所以根本没有关系。

+2

这样就意味着没有办法让Cookie过期... – 2010-05-15 10:56:31

+1

没有没有。我个人的做法是将过期时间保存在数据库中,并让cookie具有某种标识符。通常为了保存登录细节,cookie只是标识符(一个很长的随机数,所以不能被猜到)。如果客户(假设)发送过期时间,则不应使用它,因为它可能已经过调理。 – Artefacto 2010-05-15 13:09:55

1

不,没有办法。
浏览器仅使用cookie参数(路径,过期等)来确定是否发送cookie,但是这些参数都不会被发送回服务器。

不要将cookie作为$ _SESSON数组成员,而应视为HTTP标头。这总是有帮助的。

0

或者您可以使用cookie的值的函数time(),这样您只需要一个cookie并可以检索数据。 PHP代码是这样的:

setCookie('cookiename', time(), time() + 86400);

这样的话,你就会有饼干在一天到期,并通过检索它的价值,你会发现,当它就会像这样的东西到期:

86400 - (time() - $_COOKIE['cookiename']);