Sesiones
Generalmente
una web se compone de una serie de páginas entre las que existe
alguna relación.
Un ejemplo claro es una página
en la cual es necesario estar registrado para poder acceder a ellas ya
que en función de la categoría del usuario nos permitirá
acceder a unas secciones o otras. En estas aplicaciones será necesario
ir comprobando los permisos de usuario y para ello usamos un elemento en
PHP denominado "sesiones". |
|
Una sesión se inicia cuando un
usuario entra en la aplicación web y finaliza cuando el usuario
abandona la aplicación.
Durante todo ese tiempo podemos manipular
una serie de variables que se inician al iniciar la sesión y mantener
un tipo de información común entre todas las páginas
(en el caso de el usuario registrado seria los privilegios que posee).
Para mantener esta información
constante es necesario que los datos se guarden en un fichero ya sea en
el cliente (cookies) o en el servidor (en caso de que tenga desactivado
las cookies).
Para el problema que consiste en
diferenciar los diferentes usuarios existe una solución muy básica
que consiste en un identificador de sesión diferente en cada caso.
Este identificador de sesión
debe ser enviado de una pagina a otra para mantener la sesión activa(a
menos que en la configuración del servidor tengamos activada la
opción session_trans_id) y también es necesario pasar el
identificador de sesión en los formularios como un campo HIDDEN.
Ejemplos:
Hipervínculo
<a href="pagina.php?<? =SID
?>">Entrar</a>
Formulario
<input type="hidden" name="session_name()"
value="SID">
Funciones de gestión de
sesiones
|
Función
|
Significado
|
|
session_start()
|
Si es la primera solicitud genera
un identificador de sesión aleatorio cuyo nombre será sess_IDsesión;
si es otra solicitud continua la sesión iniciada anteriormente. |
|
session_destroy()
|
Elimina todos los datos asociados
con una sesión, borra el archivo en el servidor pero no borra la
cookie. |
session_register
(nombre)
|
Recibe como parámetro
una serie de nombres de variable globales y los registra como variables
de sesión en el fichero del servidor |
session_unregister
(nombre)
|
Eliminamos la variable global
introducida y se elimina el contenido de esta variable en el fichero del
servidor.Sin pasar el parámetro nombre eliminaremos todas las variables
de la sesión. |
session_is_registered
(nombre)
|
Devuelve true en caso de que
en la sesión se encuentre registrada una variable con dicho nombre. |
|
session_unset()
|
Dejamos sin ningún valor
asignado a todas las variables de la sesión |
|
session_id([nombre])
|
Si no le proporcionamos ningún
parámetro nos da el identificador de sesión; si le proporcionamos
el parámetro nombre cambia el valor del identificador por el parámetro
nombre. |
session_name
([nombre])
|
Si se invoca sin parámetro
devuelve el nombre de la variable interna que tiene el id de sesiones;
si se pasa parámetro cambia el nombre de la sesión. |
session_get_cookie
_params()
|
Permite definir nuevos valores
para los parámetros de configuración de las cookies.Para
que el cambio sea permanente hay que invocar el cambio en todos los documentos. |
session_cache_limiter
([cache_limiter])
|
Si se le proporciona valor modifica
el valor por defecto en cambio sino se muestra el caché que tiene
por defecto. |
|
session_encode()
|
Devuelve una cadena con la información
de una sesión, después de usar esta función la información
de la sesión queda actualizada |
session_decode
(cadena)
|
Descodifica la cadena que recibe
como
parámetro y que contiene la info de sesión, después
de usar esta función se actualiza la info de sesión. |
session_save_path
([path])
|
Devuelve el camino al directorio
donde se guardan los ficheros asociados a la sesión.El efecto solo
dura en el script actual. |
session_module_name
([modulo])
|
Devuelve el nombre del modulo
que se usa para realizar la gestión de sesiones. Cuando se invoca
un parámetro se usa como
nuevo gestor de sesiones. |
session_set_save_handler(open,close,read,write,destroy,gc);
| Permite
definir su propio manejador para almacenar la información asociada
con una sesión.De esta forma los datos pueden ser metidos en una
BD en vez de en un fichero. Tenemos que pasarle como parámetro toda
la información necesaria para crear y destruir sesiones |
|
|