Мой код не удаляет мои php сеансы, используя 'unlink' (debian 10) - PullRequest
1 голос
/ 05 апреля 2020

Поэтому я пытаюсь написать сценарий, который будет ограничивать количество пользователей моей веб-страницы до одного за раз.

Итак, я решил использовать сеансы, чтобы найти, как регистрируется много соединений, которые хранят эти журналы в следующем каталоге / var / lib / php / session и выглядят так, например, «sess_bsjg9hgiqgl968sj3fr8okm2o7»

Поэтому, когда пользователь входит в мой индекс. php page, файл sess_ создается в указанном выше каталоге, и я увеличиваю переменную под названием «посетитель» в соответствии с тем, сколько файлов sess_ в данный момент находится в папке.

Моя проблема заключается в том, когда пользователь закрывает вкладку (или выходит из нее) мой сайт), их php сеанс (sess_xxyyxx) не удаляется из папки, хотя я дошел до крайности установки сеанса. c принимает нелепые значения в надежде, что автомат c G C (очиститель мусора) удаляет файлы сеанса php при каждом обновлении sh домашней страницы.

Мой вопрос: как я могу удалить эти 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);
    }
}


?>
...