- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在构建一个网络应用程序,用户可以上传某些文件并通过网络应用程序界面处理这些文件。我需要在用户 session 期间存储这些文件。我正在使用 session_id
作为文件夹名称为每个用户创建一个文件夹,并将文件存储在其中。
问题:没有任何迹象表明用户离开了我的站点并且 session 即将停止使用。我需要一个清理脚本,它采用每个文件夹的名称并检查 session_id
是否仍然处于事件状态,以便删除未使用的和现在无法访问的文件夹。我该怎么做?
最佳答案
我遇到了完全相同的问题。我的解决方案是检查 session 文件:
<?php
// clean-up script. Get cron/windows task scheduler to run this every hour or so
// this is the path where PHP saves session files
$session_path = ini_get('session.save_path');
// this is the directory where you have created your folders that named after the session_id:
$session_files_dir = '/path/to/your/save/dir';
// loop through all sub-directories in the above folder to get all session ids with saved files:
if ($handle = opendir($session_files_dir)) {
while (false !== ($file = readdir($handle))) {
// ignore the pseudo-entries:
if ($file != '.' && $file != '..') {
// check whether php has cleaned up the session file
if ( file_exists("$session_path/sess_$file") ) {
// session is still alive
} else {
// session has expired
// do your own garbage collection here
}
}
}
closedir($handle);
}
?>
请注意,这假设 session.save_handler
ini 设置设置为 "files"
,session.save_path
设置没有目录级前缀(即不匹配正则表达式 /^\d+;/
)并且启用了 php 的自动 session 垃圾收集。如果上述任何一个假设都不成立,那么您无论如何都应该实现手动 session 垃圾收集,因此可以向其中添加清理代码。
这还假设 $session_files_dir
中的唯一文件是您的每个 session 文件夹,并且它们都以关联的 session_id 命名。
关于php - 检查 PHP session_id 是否被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206929/
是否有任何特别的理由来使用其中一个?我个人倾向于使用后者,因为它似乎更适合我。 最佳答案 它们做同样的事情, 关于php - 和 的区别,我们在Stack Overflow上找到一个类似的问题:
我一直在尝试在我的网站上查找 session ID,以便可以使用它来查询我的 MySQL 数据库,但我不断收到错误“ undefined variable :_SESSION in...” 这是我的代
我在 session 方面遇到了一些困难。 在我的本地 MAMP 测试服务器上,如果我这样做: session 开始();echo session_id( ); 我得到一个漂亮的 session ID
我无法理解下面的代码,我不知道我们什么时候在 session_start() 之前使用 session_id() 。 我要你解释一下!不只是复制 php.net 的描述! 另一方面,session_
我在使用 session_id() 时遇到问题,它每次在浏览器刷新/重新启动时都会返回一个新值。 阅读这篇文章 here但这并没有解决问题。我做了那里提到的所有事情 - 浏览器接受 cookie,权限
我使用 session_id 作为数据库中的 ID 列。还有一个名为“Sections”的列,其中添加了整个 xml。 xml 包含部分名称和用户在其中花费的时间。我想更新相同 session_ids
我应该在关系数据库课上多加注意,所以我需要一些帮助。 我有一个结构如下的表(还有更多,但我只发布相关信息): +------------------+-------------+------+----
我正在使用 JavaScript 发送 session_id。 session_id 在页面源中可见,例如: function startUpload(id){ var queryString
我正在开发一个在线机票预订系统,在成功预订(付款后)后,我想清除 session ID。但问题是我无法清除它,尽管我使用了 session_destroy() 来销毁 session 。 注意:我已经
我在云中“托管”的两个 Ubuntu Server VM 上使用 PHP 5.4.9,Windows Azure 和 Magento Enterprise 位于许多不同的域/子域下,这意味着有大量页面
我的生产服务器上出现了一个奇怪的情况。但是,在我本地的开发环境中这不是问题。这是一个测试脚本,我可以用它来重现问题: 如果我在浏览器中加载此页面并刷新页面 (CTRL+R),我每次都会
我尝试实现购物车。我将 session_id 存储在数据库中,以及购物车上的相关产品。登录后,我希望拥有相同的 session ,并且能够通过访问 session_id 将这些产品与用户连接起来。但是
我正在尝试在 python 3 上生成安全的 session_id。 首先,我只是生成时间戳的md5哈希值(包括微秒),然后通过cookie写入该值。但这种方法可能会被劫持。例如,从浏览器A的cook
无法在 PHP SESSIONS 中获取所有 session_id 的列表吗? 注意:我需要在服务器中维护一些文件。一个文件等于一个 session 。如果 SESSION 过期,我需要确定旧文件的行
我正在构建一个网络应用程序,用户可以上传某些文件并通过网络应用程序界面处理这些文件。我需要在用户 session 期间存储这些文件。我正在使用 session_id 作为文件夹名称为每个用户创建一个文
我的应用程序中有一些基本的 session 处理。在每个页面中,我检查用户是否已登录。如果已登录,则他们已被 $_SESSION['user_id'] 识别,并且他们的登录/注销记录在 MySQL 表
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: (PHP) How to destroy the session cookie correctly? 我正在
session_id($randomString) 和 session_regenerate_id() 之间有什么明显区别?两者似乎都改变了 session ID: session_regenerat
在标准 PHP 中,我可以通过以下方式设置 session ID: $my_session_id = $_GET['session_id']; //gets the session ID succes
我有一个 session_id,用于识别购物篮类型应用程序中的用户。 session_id 作为 session id 存储在数据库中。 当我更新购物车时,session_id、product_id
我是一名优秀的程序员,十分优秀!