Funciones de manejo de sesiones en php - cuales son que hacen y como se utilizan

¿Cuales són, qué hacen y cómo se utilizan las funciones de manejo de sesiones en PHP?

FUNCIONES

- session_id ( [ CADENA ] ) devuelve CADENA
- Obtiene/Fija el valor del 'id' de la sesión actual.

- session_cache_expire ( [ ENTERO ] ) devuelve ENTERO (minutos)
- Obtiene/Fija el valor en minutos que tienen que pasar para
que la sesión actual caduque.

  • La variable (PHP.INI->[Session]->session.cache_expire) contiene

el valor por defecto indicado en minutos.

- session_cache_limiter ( [ CADENA ]) devuelve CADENA
- Obtiene/Fija el valor de una variable que indica el nivel de caché
que habrá en el cliente:
- nocache (valor por defecto)
- public
- private (puede confundir algunos navegadores)
- private_no_expire

- session_decode (CADENA) devuelve BOOL
- Decodifica la CADENA en el formato de las sesiones de PHP, y introduce los
valores en la sesión activa.
- Al finalizar:
- Devuelve 'true' si la operación se ha realizado correctamente
- Devuelve 'false' si la ha habido algún tipo de error y por consiguiente no
se ha podido introducir los valores en la sesión activa.

- session_destroy (nada)
- Destruye las variables de sesión con sus valores
- Al finalizar:
- Devuelve 'true' si la operación se ha realizado correctamente
- Devuelve 'false' si la ha habido algún tipo de error y por consiguiente no
se han podido borrar los valores de la sesión

- session_encode (nada) devuelve CADENA
- Devuelve una cadena con la sesión actual codificada, en el formato indicado en
el apartado '¿Dónde y cómo se guarda la información de la sesión?'

  • Esta cadena puede utilizarse para almacenar sesiones y mas tarde reusarlas con

la función 'session_decode'

- session_is_registered (CADENA) devuelve BOOL
- Devuelve TRUE si existe una variable (en la sesión actual) con el nombre CADENA
- Devuelve FALSE en caso contrario

- session_name ( [ CADENA ] ) devuelve CADENA
- Si se pasa como parámetro una cadena, modifica el nombre de de la sesión
actual se cambia a este valor; si se define un valor debe de usarse antes de
session_start () y session_register (), y hacelo en caad petición.

- session_readonly (nada) devuelve nada
- Inicia la sesión, pero con la particularidad de que al finalizar el script las
variables de sesión se quedan como estaban, és decir, no se guardan los nuevos
valores de la sesión.

- session_register ( MIXTO [, MIXTO …]) devuelve BOOLEANO
- Registra una variable de sesión como tal, esta variable se puede acceder
globalmente, por ello para acceder desde una función se debe de usar el
comando global $variable;

Atención:

Si usas las arrays $_SESSION o $HTTP_SESSION_VARS, no uses las funciones
session_register (), session_is_registered () y session_unregister (). Estas
funciones devolveran VERDADERO cuando todas las variables se hallan registrado
en la sesión. Si session_start () no ha sido llamada antes de usar esta función,
se puede hacer una llamada a esta función sin parámetros para hacerlo.
Puedes crear variables de sesión (tan bién) poniendo valores en las matrices
$_SESSION (a partir de la versión 4.1) o en $HTTP_SESSION_VARS (antes de ésta
versión)

- string session_save_path ( [ CADENA ] ) devuelve CADENA
- Esta función permite obtener o definir el path del directorio dónde deben guardarse los ficheros de las sesiones.

- session_set_cookie_params ( INT [, path CADENA [, dominio CADENA [, n/seguro BOOL]]])
- Cambia los parámetros de configuración para usar las cookies, éstos están definidos
por defecto en el fichero PHP.INI

- session_set_save_handler ( string abrir, string cerrar, string leer, string escribir,
string destruir, string gc)

- Más info.: 'http://www.php.net/manual/es/function.session-set-save-handler.php'
- Define las funciones de usuario respecto a la sesión:
- Abrir ($save_path, $session_name) - (al abrir la sesión)
- Cerrar () - (al cerrar la sesión)
- Leer ($id) - (???)
- Escribir ($id, $sess_data) - (???)
- Destruir ($id) - (???)
- rb ($maxfiletime) - (Recolector de basura)
Ver las variables de PHP.INI

¿Cómo funciona y qué es el recolector de basura de las sesiones?

- Esta función indica que funciones del usuario se deben de ejecutar en determinadas
ocasiones.
Ej:
- function FCabrir ($path, $name) {
}
session_set_save_handler ("FCabrir" …);

- session_start (nada) -> No devuelve nada

- Inicializa la sesión:
- Crea una nueva sesión

o bien

- Continúa la anterior basandose en el session id pasado por GET
o mediante una cookie). Carga las variables del fichero como globales
y permite empezar a usar las funciones principales de sesión.

- Si estás usando sesiones basadas en las cookies, debes llamar a la función
antes de que haya ninguna salida al navegador.

- Más info.: http://www.php.net/manual/es/function.session-start.php
- session_start() registrará un manejador de salida interno para la reescritura de
las URL's si trans-sid está activado. Si un usuario utiliza ob_gzhandler o algo
como ob_start(), el orden del manejador de salida es importante para que la salida
sea la adecuada. Por ejemplo, el usuario debe registrar ob_gzhandler antes de iniciar
la sesión.

Nota: Se recomienda utilizar zlib.output_compression en lugar de ob_gzhandler

- session_unregister ( CADENA ) devuelve BOOLEANO
- Quita de la sesión y destruye la variable indicada como parámetro.
- Al finalizar
- Devuelve true si se hizo correctamente
- Devuelve false si no se pudo eliminar

- Más info.: http://www.php.net/manual/es/function.session-unregister.php
Nota: Si utiliza $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior),
use unset() para eliminar una variable de la sesión actual.

- session_unset (nada) devuelve nada
- Destruye todas las variables de la sesión

- Más info.: http://www.php.net/manual/es/function.session-unset.php
Nota: Si utiliza $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior),
use unset() en su lugar para desregistrar una variable de la sesión. p.ej.
$_SESSION = array();

- session_write_close (nada) devuelve nada
- Finaliza la sesión actual y guarda sus datos

- Más info.: http://www.php.net/manual/es/function.session-write-close.php
Los datos de la sesión se suelen guardar tras finalizar la ejecución de su script
sin necesidad de llamar a session_write_close(), pero como los datos de la sesión
están bloqueados para evitar escrituras concurrentes, sólo un script puede trabajar
con una sesión a la vez. Cuando se usan framesets junto con sesiones, podrá comprobar
que los frames se cargan uno a uno debido a este bloqueo. Puede reducir el tiempo
necesario para cargar los frames finalizando la sesión tan pronto como haya terminado
los cambios a las variables de la sesión.

¿Mi script puede acceder a las sesiones de otros clientes?

Con las funciones que ofrece el sistema de sesiones de PHP no…
Sin embargo hay 1 forma…
Que es obteniendo el directorio de las sesiones y editando el fichero
de otra sesión; (éste método no debería ser utilizado).

Las sesiones fueron creadas para la almacenación persistente de información
relevante de los usuarios que accedan a un sistema, esta información es individual
y no requiere ver otras sesiones.

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License