首页 > 解决方案 > 我的代码没有使用“取消链接”(debian 10)删除我的 php 会话

问题描述

因此,我正在尝试编写一个脚本,将访问我的网页的用户数量限制为一次。

所以,我决定做的是使用会话来查找正在记录的连接数,它将这些日志保存在以下目录 /var/lib/php/sessions 中,例如“sess_bsjg9hgiqgl968sj3fr8okm2o7”

因此,当用户进入我的 index.php 页面时,会在上述目录中创建一个 sess_ 文件,并且我会根据文件夹中当前有多少 sess_ 文件来增加一个名为“visitor”的变量。

我的问题是,当用户关闭选项卡(或退出我的网站)时,他们的 php 会话(sess_xxyyxx)没有从文件夹中删除,即使我已经将 session.gc 设置为荒谬的值,希望每次刷新主页时,自动 GC(垃圾清理器)都会删除 php 会话文件。

我的问题是,如果以下代码不起作用,如何通过脚本从文件夹中删除这些 php 会话?

代码贴在下面:

<?php 


ini_set();
ini_set('session.gc_max_lifetime', 0);
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);



$session_path = session_save_path();

$visitors=0;

$handle = opendir(session_save_path());

session_start();

while (($file = readdir($handle)) != FALSE)
{
    if ($file!="."&&$file!="..")
    {

        if (preg_match("/sess/",$file))
        {
            $visitors++ ;
        }

        unlink($file);
    }
}


?>

标签: phpcookiesdebian-based

解决方案


推荐阅读