Apuntes sobre sesiones de PHP
Publicado en 5 noviembre, 2019
En la documentación oficial viene información que no se ajusta a la realidad. Aquí algunas soluciones encontradas a problemas habituales.
REGENERAR ID DE SESIÓN
- Según web oficial:
- session_regenerate_id() reemplazará el id de sesión actual por uno nuevo, y mantendrá la información de la sesión actual. Spoiler: Se pierde la sesión.
- Solución real:
- $old_session = $_SESSION; // guardamos datos de sesión en una variable auxiliar
- session_regenerate_id(true); // nuevo id
- session_write_close(); // cerramos el flujo
- session_start(); // iniciamos otra vez la sesión
- $_SESSION = $old_session; // recuperamos las variables
LIFETIME DE LA SESIÓN
- Según web oficial: dentro de session_start() incluir un array con el atributo cookie_lifetime o cookie_setparams.
- La realidad: setear una cookie así ->
setcookie(session_name(), session_id(), $TIME, "/", null)

¿Algo que comentar?
Lo siento, debes estar conectado para publicar un comentario.