关闭浏览器后,php会话cookie没有消失

时间:2015-02-18 21:47:06

标签: php cookies

书上说,持久性cookie留在客户端机器上直到它过期。 浏览器关闭后会话cookie将消失。

我尝试过,比如:

setcookie("name", "value");  // before any output

但关闭浏览器并重新启动后,它仍然存在 (来自print_r($_COOKIE))。

我试过几种不同的浏览器,比如safari,chrome,firefox, 就是这样。只有日食不同:)

那么,所有当前的浏览器都不遵循“规则”吗? 或者我的会话cookie有一些默认超时 不知道?

感谢。

修改

我检查了萤火虫它说:

名称值域过期

名称值localhost 会话

5 个答案:

答案 0 :(得分:0)

检查PHP settings会话Cookie名称,域名和路径,并使用与 setcookie()相同的值取消设置Cookie。它们都可以用 ini_get()读取并输入变量。

上述建议假定您使用PHP内置会话机制,即。你不会在自己的自定义会话库中使用框架。

答案 1 :(得分:0)

您设置的内容不是会话Cookie。在浏览器中加载页面之后,检查从服务器设置的cookie(如果是本地计算机,则为localhost),您将看到服务器设置的SESS_ID cookie,当您关闭时,它会进入浏览器

答案 2 :(得分:0)

您实际尝试设置的是persistent cookie ..可以通过启动会话或在会话中存储值{{1}来简单地设置session cookie或简称session }}

你正在做的是$_SESSION['name']=$value它即使浏览器关闭也不会过期。它仅在cookie中设置的时间到期后到期。

persistent cookie一样,它会将Cookie信息设置为1天..即使浏览器已关闭..

您可以根据需要设置时间和Cookie信息...... `

答案 3 :(得分:0)

那是因为您正在设置Cookie。

会话不是Cookie。 Cookie不是会话。

http://www.tuxradar.com/practicalphp/10/1/0

引自第一页:

  

Cookie可以设置为较长的​​使用期限,这意味着存储在Cookie中的数据可以存储数月(如果不是数年)。

会话,通过sessions上的页面:

  

同样重要的是要注意,会话只会持续到用户关闭浏览器,而cookie可以配置为持续更长时间。

答案 4 :(得分:0)

感谢大家的回应。这是我的问题。 我正在研究macbook,我想点击红十字会关闭 浏览器。但是虽然浏览器消失了。在屏幕的最顶部, 它仍然是safari菜单栏。我必须点击safari并退出。

现在,关闭浏览器后我的所有会话cookie都消失了:)