Sesiones

1. Abrir sesión

Crea una sesión o reanuda la actual basada en un identificador de sesión pasado mediante una petición GET o POST, o pasado mediante una cookie. Esta función devuelve TRUE si una sesión fue iniciada satisfactoriamente, si no, devuelve FALSE.

La llamada de retorno read recuperará cualquier información se de sesión existente (almacenada en un formato serializado especial) y será deserializada y usada para rellenar automáticamente la variable superglobal $_SESSION cuando la llamada de retorno read devuelva la información de sesión guardada a la gestión de sesiones de PHP.

session_start();

Para usar sesiones basadas en cookies, session_start() debe ser llamada antes de imprimir cualquier cosa en el navegador.

Para crear una cookie persistente que dura un dia. 'cookie_lifetime' => 86400,

Si sabemos que no necesitamos cambiar nada de la sesión, podemos simplemente leerla y cerrarla inmediatamente con 'read_and_close' => true, para evitar bloquear el fichero de sesión y otras páginas.

2. Guardar sesion

Se puede guardar algunos parámetros en la sesión.

$_SESSION['n'] = 0;
session_write_close();

3. Recuperar valor almacenado

Durante la sesión, es decir luego a abrir (session_start()) y antes de cerrar (sesssion_destroy()), se pueden recuperar parámetros almacenados.

$fecha  = $_SESSION['fecha'];

4. Destruir sesión

Destruye toda la información registrada de una sesión actual. No destruye ninguna de las variables globales asociadas con la sesión, ni destruye la cookie de sesión. Para volver a usar las variables de sesión se debe llamar nuevamente a session_start().

session_unset();
session_destroy();
session_write_close();

Para destruir la sesión completamente, como desconectar al usuario, el id de sesión también debe ser destruido. Si se usa una cookie para propagar el id de sesión (comportamiento por defecto), entonces la cookie de sesión se debe borrar. setcookie() se puede usar para eso.

8. Fuga de memoria

Debes asegurarte de liberar las variables de memoria usadas en la sesión para no perder memoria.

unset($n, $num, $sql, $res);