Pliki pustych sesji PHP generowane przez system logowania

Ostatnio zauważyłem, że tworzonych jest wiele pustych sesji, nie jestem pewien, dlaczego, ponieważ uważam, że robię wszystko we właściwy sposób.

W tej chwili tworzymy sesję, gdy użytkownik równieżloguje się lubrejestry, następnie sprawdzamy, czy użytkownik jest zalogowany za pomocąisset($_COOKIE['auth']) należy do sesji utworzonej podczas logowania lub rejestracji.

Jeśli ten plik cookie jest obecny, rozpoczynamy sesję, co pomaga nam uniknąć uruchamiania tysięcy sesji dla niezarejestrowanych użytkowników i tworzenia ogromnej liczby plików sesji.

Ustawienia sesji:

plik php

session_save_path("/home/user/sessions");
session_set_cookie_params("86400", "/");
session_name("auth");

php.ini

session.gc_maxlifetime = 90000
session.cookie_lifetime = 90000
session.use_trans_sid = 0
session.use_only_cookies = 1

Utwórz sesję logowania (Po pomyślnym zalogowaniu)

session_start();
session_regenerate_id(true);

$_SESSION['userId'] = $userId;
$_SESSION['created'] = time();

session_write_close();
header("Location: $_SERVER[HTTP_REFERER]");

Sprawdzanie, czy sesja powinna zostać wznowiona

Następnie sprawdzamy, czy rozpocząć sesję dla użytkownika, czy nieauth ustawiany jest plik cookie sesji.

Zostanie on ustawiony tylko, jeśli użytkownik wcześniej się zarejestrował lub zalogował:

if(isset($_COOKIE['auth'])){
    session_start();
    session_write_close();
}

Sprawdź, czy użytkownik jest zalogowany

Aby sprawdzić, czy użytkownik jest zalogowany, korzystamy z funkcji:

function isAuthenticated(){

    if (!isset($_SESSION['userId']))
        return false;
    else
        return true;
}

Wyloguj

function logOut(){
    session_start();
    session_destroy();
    setcookie('auth', "", 0);
    unset($_SESSION);
    unset($_COOKIE['auth']); 
    return true;
}

Z jakiegoś powodu dostaję wiele pustych (rozmiar plików 0) plików sesji w folderze sesji.

Skąd one pochodzą?

Robisession_regenerate_id(true) utworzyć nowy plik sesji i pozostawić stary plik sesji pusty? To jedyny powód, dla którego mogę myśleć o pustych plikach sesji?

questionAnswers(4)

yourAnswerToTheQuestion