Sesiones en PHP

Una sesión en el entorno del desarrollo web consiste en controlar el acceso individual a una página o grupo de páginas determinado, mediante la asignación de un identificador de único para cada usuario. Con ello se puede conseguir hacer un seguimiento de cada usuario a lo largo de su visita en nuestra página web, desde que entra hasta que sale. PHP consigue con el apoyo de las sesiones construir páginas más personalizadas conservando dentro del objeto $_SESSION de PHP el estado de las acciones realizadas por el usuario (de dónde viene, por dónde ha pasado..).

Por ejemplo, en una tienda virtual cuando el usuario va a pagar definitivamente el pedido, la página deberá "recordar" qué productos ha seleccionado previamente. Para esto se utilizan las sesiones, para identificar a un usuario y pasar datos asociados a él entre las distintas páginas. En el caso de la tienda, el listado de productos se guardaría en el objeto $_SESSION asociados a un identificador.

Otro uso muy frecuente de las sesiones es la autentificación en páginas restringidas mediante usuario y password. Mediante PHP hay que comprobar que los datos introducidos por el usuario en el formulario de autentificación son válidos en la base de datos, y si es así iniciar una sesión guardándolos en el objeto $_SESSION. En cada página que se quiera restringir el acceso deberá haber una comprobación de si existen las variables de sesión y si éstas coinciden con algún registro de la base de datos. En caso contrario el usuario no es válido y deberá identificarse de nuevo.

Es imprescindible para el uso de sesiones que el usuario acepte las cookies. De lo contrario el identificador de sesión deberá pasarse como parámetro GET en las URL. Para ello se debe utilizar la constante SID o la función session_id().

Las sesiones se utilizan fácilmente en PHP, algunas funciones relacionadas con el uso de las sesiones son:

Para iniciar la sesión (crear una nueva o continuarla), disponemos de la función session_start().
Esta función siempre devuelve TRUE.
bool session_start ( void )

Para registrar variables utilizamos:
session_register(), acepta como argumento una cadena que identifique el nombre de una variable, o una matriz que contenga más identificadores de variables.
bool session_register ( )

Para destruir los datos asociados a la sesión actual, hay que utilizar session_destroy().
Hay que tener en cuenta que no destruye ninguna de las variables globales asociadas a la sesión ni la cookie. Esta función devuelve TRUE si se destruye la sesión correctamente y FALSE se produce algún problema al intentarlo.
bool session_destroy ( void )

Para eliminar alguna variable registrada se utiliza session_unregister(). Se le pasa como parámetro el nombre de la variable.
bool session_unregister()

Otras funciones relacionadas con sesiones en PHP son:

  • string session_id (): Lee o cambia el identificador de sesión actual.
  • void session_unset ( ): Elimina toda las variables de la sesión.
  • bool session_is_registered(): Comprueba si una variable está registrada en la sesión.
  • string session_save_path(): Lee o cambia la ruta donde se guardan los datos de la sesión actual. Hay que configurar el save_path para que no de error en php.ini
  • string session_module_name (): Lee y/o cambia el módulo de la sesión actual
  • bool session_set_save_handler(): Establece unas funciones para el almacenamiento de los datos de la sesión a nivel de usuario.
  • array session_get_cookie_params(): Obtiene los parámetros de la cookie de la sesión
  • void session_set_cookie_params(): Cambia los parámetros de la cookie de la sesión
  • void session_write_close(): Escribe los datos de la sesión y la finaliza.
  • bool session_regenerate_id(): Actualizar la id de sesión actual con una recién generada
  • string session_encode(): devuelve una cadena con el contenido de la sesión actual en su interior.



Nombre:

Email:

Comentario: