在PHP中获取cookie参数?

7

如何获取cookie参数?比如“过期时间,安全性,httponly”等等。
这是可能的吗?

3个回答

3

使用PHP无法获取cookie的过期时间或其他你所请求的参数。这是因为PHP不存储这样的任何内容。当你设置一个cookie时,实际上是在告诉浏览器输出一次header,然后由客户端(即浏览器)在每个HTTP请求中发送回cookie数据。因此,PHP 没有保留这些数据的理由,所以它不会保存。

当然,如果你知道在代码中cookie是如何设置的,你可以将cookie过期的时间存储到另一个cookie或文件中。


存储并不能保证其不变,用户可以自由地进行修改。 - Daniel Egeberg
如果用户/客户端表现不佳,应用程序也不应该如此。 - Sam Becker

1

不行(绝对不能用 PHP,我认为 JavaScript 也不行)。但是你可以将该信息保存在 cookie 数据中。

有时候你希望有一个在一定时间内有效的 cookie,并且在服务器端也强制执行其有效性。例如,客户端使用 cookie 进行身份验证,而且该 cookie 有一定的有效期限(例如用户应该登录 x 天)。在这种情况下,你应该将那个时间也存储在数据库中,并且在给出 cookie 身份验证令牌时进行检查。如果没有篡改,那么 cookie 应该在你在数据库中记录的时间(或之前)过期,否则,凭据会被拒绝。


1

客户端也无法做到这一点。Javascript的document.cookie不提供过期时间。因此,常见的习惯是设置伴随cookie,其中包含上次刷新cookie的时间。或者您可能还想设置一个复合值的cookie,例如setcookie("name", "value..|time()"),稍后可以使用strtok($_COOKIE["name"], "|")访问它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接