【发布时间】:2015-07-02 05:54:08
【问题描述】:
我有这个登录代码,我将以下内容存储在会话变量中:
if($do == "login") {
session_start();
$_SESSION["valid"] = true;
$_SESSION["studentUniqueId"] = $user_row['studentUniqueId'];
$_SESSION["loginName"] = $loginName;
$_SESSION["timeout"] = $now;
}
会话文件如下所示:
有效|b:1;studentUniqueId|s:5:"10001";loginName|s:13:"abc@gmail.com";timeout|s:19:"2015-07-01 18: 26:32";
还有我正在销毁用户会话的注销代码:
if($do == "logout") {
session_start();
$_SESSION = array();
session_unset();
session_destroy();
}
注销后会话文件包含:
有效|b:0;
即使我使用了 session_destroy(),注销后会话文件在我的服务器临时目录中存在 valid|b:0; 并且临时目录的大小大大增加。
我想在 session_destroy()/logout 之后删除这些文件,但现在不是这样。
我的代码有什么问题吗?
【问题讨论】:
-
你不应该调用 session_start();两次。
-
在注销页面,你将使用 unset($_SESSION);
-
the size of the temp directory increases considerably- php 通常会运行一个 cronjob 来删除旧的会话文件。如果您的注销功能有效并且您最关心的是磁盘空间的使用 - 找出标准 cronjob which looks something like this 丢失/未运行的原因。