Generalmente una web se compone de una serie de paginas entre
las que existe alguna relacion. Un ejemplo claro es una pagina
en la cual es necesario estar registrado para poder acceder a
ellas ya que en funcion de la categoria del usuario nos permitira
acceder a unas secciones o otras, en estas aplicaciones sera necesario
ir comprobando los permisos de usuario y para ello usamos un elemento
en PHP denominado "sesiones".
Una sesion se inicia cuando un usuario entra en la aplicacion
web y finaliza cuando el usuario abandona la aplicacion(mas adelante
comprenderemos lo de "abandonar aplicacion"), durante
todo ese tiempo podemos manipular una serie de variables que se
inician al iniciar la sesion y mantener un tipo de informacion
comun entre todas las paginas(en el caso de el usuario registrado
seria los privilegios que posee).Para mantener esta informacion
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 solucion muy basica que consiste en un identificador
de sesion diferente en cada caso.
Este identificador de sesion debe ser enviado de una pagina a
otra para mantener la sesion activa(a menos que en la configuracion
del servidor tengamos activada la opcion session_trans_id) y tambien
es necesario pasar el identificador de sesion en los formularios
como un campo HIDDEN.
Ejemplos:
Funcion |
Significado |
session_start(); |
Si es la primera solicitud genera un
identificador de sesion aleatorio cuyo nombre sera sess_IDSESION;
si es otra solicitud continua la sesion iniciada anteriormente. |
session_destroy(); |
Elimina todos los datos asociados con
una sesion, borra el archivo en el servidor pero no borra
la cookie. |
session_register(nombre); |
Recibe como parametro una serie de nombres
de variable globales y los registra como variables de sesion
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 parametro nombre eliminaremos
todas las variables de la sesion. |
session_is_registered(nombre); |
Devuelve true en caso de que en la sesion
se encuentre registrada una variable con dicho nombre. |
session_unset(); |
Dejamos sin ningun valor asignado a
todas las variables de la sesion |
session_id([nombre]); |
Si no le proporcionamos ningun parametro
nos da el identificador de sesion; si le proporcionamos
el parametro nombre cambia el valor del identificador por
el parametro nombre. |
session_name([nombre]); |
Si se invova sin parametro devuelve
el nombre de la variable interna que tiene el id de sesiones;
si se pasa parametro cambia el nombre de la sesion. |
session_get_cookie_params(); |
Permite definir nuevos valores para
los parametros de configuracion 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 cache
que tiene por defecto. |
session_encode(); |
Devuelve una cadena con la informacion
de una sesion, despues de usar esta funcion la informacion
de la sesion queda actualizada |
session_decode(cadena); |
Descodifica la cadena que recibe como
parametro y que contiene la info de sesion, despues de usar
esta funcion se actualiza la info de sesion. |
session_save_path([path]); |
Devuelve el camino al directorio donde
se guardan los ficheros asociados a la sesion.El efecto
solo dura en el script actual. |
session_module_name([modulo]); |
Devuelve el nombre del modulo que se
usa para realizar la gestion de sesiones.Cuando se invoca
un parametro 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 informacion asociada con una sesion.De esta
forma los datos pueden ser metidos en una BD en vez de en
un fichero.Tenemos que pasarle como parametro toda la informacion
necesaria para crear y destruir sesiones. |