variables predefinidas PHP

Sesiones con PHP

sesiones PHPEste post va a ir dedicado a las sesiones con PHP.  Para empezar hay que aclarar que son las sesiones, y una sesión es un mecanismo de programación de las tecnologías de web scripting que permite conservar información sobre un usuario al pasar de una página a otra. A diferencia de una cookie, los datos asociados a una sesión se almacenan en el servidor y nunca en el cliente.

En la mayoría de las tecnologías de web scripting, las sesiones se implementan mediante una cookie que almacena un valor que identifica al usuario en el servidor web cada vez que pasa de una página web a otra. En el servidor web están almacenados todos los datos de la sesión y se accede a ellos cada vez que se pasa de página gracias al identificador almacenado en la cookie.

Funciones que guardan relación con las Sesiones:



  • session_destroy(): Elimina todos los datos asociados con la sesión actual, sin modificar las variables globales asociadas a la sesión ni la cookie de sesión. Para usar variables de sesión de nuevo hay que llamar a la función session_start().

Para matar completamente la sesión, el identificador de sesión también se debe borrar (con unset). Por ejemplo en el comportamiento por defecto de utilizar una para propagar el identificador de sesión se debe matar la cookie de sesión por ejemplo con setcookie().

  • session_unset(): Libera todos los recursos asociados a las variables de sesión actualmente registradas.
  • session_enconde(): Codifica los datos de sesión actual en una cadena.
  • session_decode(datos): Decodificalos datos de una sesión pasados como argumento en una cadena, generando las variables guardadas en dicha sesión.
  • session_cache_expire([caducidad]): Devuelve el tiempo que resta en minutos para que la sesión finalice. Si pasamos un valor entero como argumento en la llamada a la función, se actualizará el tiempo de caducidad de la sesión.
  • session_get_cookie_params(): Obtiene los parámetros de la cookie de sesión (duración, camino, dominio y seguridad), en caso de que éste haya sido elegido como método para gestionar las sesiones.
  • session_get_cookie_params (tiempo [, camino [,dominio [, seguridad]]]): Nos permite cambiar los parámetros de la cookie de sesión actual.
  • session_save_path ([string camino]): Nos permite obtener modificaciones de la ruta donde se guardan los datos de la sesión actual. Si se indica el camino donde guardar los datos de esta función se tiene que llamar antes de session_start().

Los parámetros de configuración de sesiones:

La siguiente tabla muestra un resumen de las directicas del fichero php.ini relacionadas con la gestión de sesiones:

DirectivaValor por defectoDescripción
sessión.auto_start0 (deshabilitado)Especifica si el módulo que gestiona las sesiones se inicia automáticamente al recibir una petición.
session.namePHPSESSIDEspecifica el nombre de la sesión que se usa como nombre de la cookie.
session.save_handlerfilesDefine el tipo de controlador  se usa para almacenar y recuperar los datos asociados a la sesión. Podemos especificar user si las operaciones las implementa el usuario.

Relacionando con session_set_save_handler() que establece las funciones de almacenamiento de sessiones definidas por el usuario las cuales se usan para lamacenar y recoger la información relacionada con la sesión.

session.save_path/tmpRuta donde se almacenan los datos asociados a las cookies. Relacionando con la función session_save_path().
session.serialize_handlerphpIndica si el móduclo puede usar coookies para guardar el identificativo de sesión en el lado del cliente.
session.use_only_cookies0Especifica si sólo se deben utilizar cookies para guardar el identificativo de sesión en el lado del cliente.
session.use_cookies1 (Habilitado)Indica si el módulo puede usar cookies para guardar el identificativo de sesión en el lado del cliente.
session.cookie_lifetime0Especifica la duración de la cookie en segundos que se manda al navegador. El valor 0 significa ‘hasta que se cierra el navegador’.
session.cookie_domainEspecifica si las cookies se deben enviar sólo a través de conexiones seguras.
session.cookie_secureOff0Especifica si las cookies se deben enviar sólo a través de conesione seguras.
session.referer_checkContiene la subcadena de comprobación de cada “HTTP Referer”. Sirve para invalidar URL’s almacenadas externamente que contiene ids. HTTP_REFERER tiene que contener esta substring para la sesión en cuestión para ser considerada como válida.
 session.cache_limiter nocache Especifica el método de control del caché a
usar en las páginas de la sesión. Valores
posibles: none, nocache, private, private_no_expire, publi).
El limitador de caché define qué cabeceras
HTTP de control de caché se envían al cliente.
Estas cabeceras determinan las reglas por las
que el contenido de la página se puede
cachear por el cliente y los proxies
intermedios.
 session.cache_limiter 180 Especifica el tiempo de vida en minutos de las
páginas de la sesión que se encuentran en
caché.
session.use_trans_sid 0 Indica si la inclusión del sid transparente está
activada o no. Es decir, automatiza la
incorporación del identificador de sesión en
todas las peticiones. Activar esta directiva
puede ser peligroso puesto que alguien con
una sesión activada puede enviar a otra
persona una URL que contenga un
identificador de sesión activo.
 session.gc_probability 1 Especifica la probabilidad de que se inicie la
rutina gc (garbage collection -recolección de
basura-) en cada petición en porcentaje.
 session.gc_maxlifetime 1440 Especifica el número de segundos tras los
cuales los datos se considerarán como
“basura” y serán eliminados.
 session.entropy_file Indica la ruta a un recurso externo (un
archivo) que se usará como fuente adicional
de entropía en el proceso de creación de
identificativos de sesión, por ejemplo,
/dev/random o /dev/urandom, disponibles en
muchos sistemas UNIX
session.entropy_length 0 Especifica el número de bytes que serán
leídos del archivo indicado en la directiva
anterior.
El valor por defecto (0) hará a PHP usar la API
Windows Random como fuente de entropía

Deja un comentario