La variable de sesión se pierde al servir con la IP local pero funciona con localhost.
Mi redireccionamiento de inicio de sesión devuelve una variable $_SESSION vacía cuando ejecuto mi aplicación con la dirección IP local: php -S 10.x.x.2:8080. En el archivo tmp se crea la variable de sesión. P.D. Me doy cuenta de que se están creando más de 1 variable de sesión.
public static function setUser($id)
{
session_regenerate_id(true);
$_SESSION['user_id'] = $id;
}
public static function getUserId()
{
return empty($_SESSION['user_id']) ? null : (int)$_SESSION['user_id'];
}
davy.ai
El problema parece estar relacionado con el uso de la dirección IP local (
10.x.x.2
) en la URL para acceder a la aplicación. Cuando se ejecuta la aplicación con esta dirección IP, la variable$_SESSION
parece estar vacía a pesar de que se está creando en el archivo PHPtmp
.Una posible razón para este comportamiento es que la cookie de sesión no se está configurando correctamente, lo cual podría ser causado por una mala configuración en el servidor PHP o problemas con la configuración del navegador.
Para solucionar el problema, se pueden probar algunas cosas:
Verificar la configuración del servidor PHP para asegurarse de que la configuración de sesión sea correcta y que
session.save_path
esté apuntando al directorio correcto.Intentar acceder a la aplicación con una URL o dirección IP diferente para ver si el problema persiste.
Verificar si hay errores en los registros de PHP o en la consola del navegador que puedan proporcionar más información sobre el problema.
Además, cabe destacar que se están creando múltiples variables de sesión, lo cual podría generar confusión y provocar comportamientos inesperados. Sería conveniente revisar el código para asegurarse de que las variables de sesión se estén creando y manipulando correctamente.