书上说,持久性cookie留在客户端机器上直到它过期。 浏览器关闭后会话cookie将消失。
我尝试过,比如:
setcookie("name", "value"); // before any output
但关闭浏览器并重新启动后,它仍然存在
(来自print_r($_COOKIE)
)。
我试过几种不同的浏览器,比如safari,chrome,firefox, 就是这样。只有日食不同:)
那么,所有当前的浏览器都不遵循“规则”吗? 或者我的会话cookie有一些默认超时 不知道?
感谢。
修改
我检查了萤火虫它说:
名称值域过期
名称值localhost 会话
答案 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都消失了:)