php会话_destroy()设置cookie时间()

php会话_destroy()设置cookie时间(),php,session-cookies,Php,Session Cookies,在要使用会话\u destroy()中,它指定删除cookie: if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); } 是否应更改4

在要使用
会话\u destroy()
中,它指定删除cookie:

if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
}

是否应更改42000秒?一个人应该使用什么价值?我不记得在我的会话中设置了任何cookie,但我相信
php.ini
默认设置为使用cookie

PHP默认设置cookie。在PHP中创建会话时,PHP将生成相应的会话ID,并在HTTP头中的请求上来回传递该ID。这就是服务器如何知道与特定用户关联的会话数据

您无需更改
42000
。这个数字的目的是将cookie设置为过期一段时间。这样,浏览器将删除相应的cookie,删除对服务器上存储的会话数据的引用,从而“清除”会话

根据
PHP.ini
配置文件中给定的时间,PHP垃圾收集器将稍后删除服务器上的会话数据

下面是安装PHP时使用的默认会话配置设置的参考


Reference:

首先不删除会话数据吗?@sjagr我不这么认为。根据:“session_destroy()销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。要再次使用会话变量,必须调用session_start()我以前见过这种情况,通过再次调用
session\u start()
恢复会话数据。我认为垃圾收集器必须运行才能完全删除临时文件。会话变量引用不能用
$\u session=array()删除吗但是,根据文档?最终,任何东西都不会被删除(内存仍然需要被垃圾收集,磁盘集群必须被重写),但文档中的示例看起来非常完整。@sjagr这是正确的。他们提供的例子非常好。这听起来像是OP在问为什么这个例子如此彻底(在清除cookies等方面),而不仅仅是调用
session_destroy()。OP说他/她没有设置任何饼干,也不太清楚为什么需要移除它们。我刚才解释说,这是PHP开箱即用以及cookie如何提供数据引用的全部内容。为了真正中断会话,您必须中断相应的引用。这只是对正在发生的事情的解释。