【问题标题】:PHP : my cookies are not deleted after closing the browserPHP:关闭浏览器后我的cookies没有被删除
【发布时间】:2014-01-26 09:51:21
【问题描述】:

我的 php 代码有一些困难。我需要修改我同事的部分代码,我不明白发生了什么。

在登录页面,他检查了登录名和密码,如果没问题,启动$_SESSION,用户就可以访问应用程序了。

问题是,如果用户没有点击断开链接并退出页面(即使他关闭了浏览器或关闭了电脑),他总是处于连接状态。我检查了,有一个 cookie。

我的第一个问题是为什么这个 cookie 存在,因为代码中没有 setCookie()。

这是我的 php.ini 中关于 session 的部分:

session.save_handler = files
session.save_path = "N;/path"
session.save_path = "/var/lib/php/session"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = 
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

所以我需要知道如何在用户关闭浏览器时删除 cookie。 (我无法定义过期值,因为应用程序使用了一些处理,这可能需要很长时间才能得到结果)。

你能帮帮我吗?

谢谢

安琪儿

【问题讨论】:

  • 我不记得了,但是这个字符串 session.cookie_lifetime = 0 可能会告诉您登录系统的时间,会话的“生命”有多少,0 代表“永远”跨度>
  • @Goikiu:是的。但是如果我输入一个值,问题是用户可能会因为页面的加载时间太长而丢失他想要的结果(我将 hadoop 用于大数据)。我不知道我是否真的很清楚:s
  • 是的,你很清楚,你会要求运行太多时间(超过 ini 设置)。

标签: php session cookies session-cookies


【解决方案1】:

您不能只删除任何 cookie,因为您不能保证确实存在这样的文件 - 浏览器和网络服务器之间关于 cookie 的合同是数据将在符合条件的请求时呈现。

您需要将要删除的coockie 的到期日期设置为过去的某个时间。然后浏览器应该会自动删除它。

【讨论】:

  • 但是我不明白这个: ; cookie 的生命周期(以秒为单位),如果为 0,则直到重新启动浏览器。 ; php.net/manual/en/… session.cookie_lifetime = 0 => 那为什么即使我关闭浏览器,cookie 也总是在这里?
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 2015-06-13
  • 1970-01-01
  • 2017-09-16
  • 2021-06-18
相关资源
最近更新 更多