Cita de: MinusFour en 2 Enero 2020, 20:30 PM
La superglobal $_SESSION se llena solo cuando se inicia una session. Si tu tienes sesiones anónimas de manera que marcar un campo en la superglobal de $_SESSION lo consideras que la sesión ha sido autentificada entonces lo que haces funciona.
Pero si creas la sesión solo cuando el usuario se autentifica, lo correcto es usar session_status. Esto te permite revisar si hay una sesión existente antes de usar session_start (que es la que popula $_SESSION).
Lo hago así
Código (php) [Seleccionar]
// Si el email y la contraseña son correctas
if(!isset($_SESSION['id_user']))
{
$_SESSION['id_user'] = $x;
}
[Mando a otra pagina a el usuario]
// Si el usuario sale "logout"
if(isset($_SESSION['id_user']))
{
unset($_SESSION['id_user']);
session_destroy();
}
Esta forma es valida? segura?