PHP пустые файлы сессии, сгенерированные системой входа
Недавно я заметил, что создается много пустых сессий, но я не уверен, почему, хотя, как мне кажется, я делаю все правильно.
На данный момент мы создаем сеанс, когда пользователь либовходит в или жерегистрыЗатем мы проверяем, вошел ли пользователь сisset($_COOKIE['auth'])
который принадлежит сеансу, созданному во время входа в систему или регистрации.
Если этот файл cookie присутствует, мы запускаем сеанс, это помогает нам избежать запуска тысяч сеансов для незарегистрированных пользователей и создания огромного количества файлов сеансов.
Настройки сеанса:
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
Создать сеанс входа (При успешном входе)
session_start();
session_regenerate_id(true);
$_SESSION['userId'] = $userId;
$_SESSION['created'] = time();
session_write_close();
header("Location: $_SERVER[HTTP_REFERER]");
Проверка необходимости возобновления сеанса
Затем мы проверяем, следует ли начинать сеанс для пользователя, на основании того,auth
cookie сеанса установлен.
Он будет установлен, только если пользователь ранее зарегистрировался или вошел в систему:
if(isset($_COOKIE['auth'])){
session_start();
session_write_close();
}
Проверьте, вошел ли пользователь в систему
Чтобы проверить, вошел ли пользователь в систему, мы используем функцию:
function isAuthenticated(){
if (!isset($_SESSION['userId']))
return false;
else
return true;
}
Выйти
function logOut(){
session_start();
session_destroy();
setcookie('auth', "", 0);
unset($_SESSION);
unset($_COOKIE['auth']);
return true;
}
По какой-то причине я получаю много пустых (размер файла 0) файлов сеанса в папке сеанса.
Откуда они?
Есть лиsession_regenerate_id(true)
создать новый файл сеанса и оставить старый файл сеанса пустым? Это единственная причина, по которой я могу думать о пустых файлах сессии?