Arquivos de sessão vazia do PHP gerados pelo sistema de login
Recentemente, notei que muitas sessões em branco estão sendo criadas, mas não sei por que, como acredito, estou fazendo tudo da maneira correta.
No momento, criamos uma sessão quando um usuáriofaz login ouregistros, em seguida, verificar se um usuário está logado com umisset($_COOKIE['auth'])
que pertence à sessão criada durante o login ou registro.
Se esse cookie estiver presente, iniciaremos uma sessão, isso nos ajudará a evitar iniciar milhares de sessões para usuários não registrados e criar uma enorme quantidade de arquivos de sessão.
Configurações da sessão:
arquivo 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
Criar sessão de login (No login bem sucedido)
session_start();
session_regenerate_id(true);
$_SESSION['userId'] = $userId;
$_SESSION['created'] = time();
session_write_close();
header("Location: $_SERVER[HTTP_REFERER]");
Verificando se uma sessão deve ser retomada
Em seguida, verificamos se iniciar uma sessão ou não para um usuário, com base em seauth
cookie de sessão está definido.
Só será definido se o usuário tiver se registrado ou logado antes:
if(isset($_COOKIE['auth'])){
session_start();
session_write_close();
}
Verifique se o usuário está logado
Para verificar se um usuário está logado, usamos uma função:
function isAuthenticated(){
if (!isset($_SESSION['userId']))
return false;
else
return true;
}
Sair
function logOut(){
session_start();
session_destroy();
setcookie('auth', "", 0);
unset($_SESSION);
unset($_COOKIE['auth']);
return true;
}
Por algum motivo, porém, estou recebendo muitos arquivos de sessão vazios (filesize 0) na pasta de sessão.
De onde eles estão vindo?
Fazsession_regenerate_id(true)
criar um novo arquivo de sessão e deixar o antigo arquivo de sessão vazio? Essa é a única razão pela qual posso pensar nos arquivos da sessão vazia?