Dónde y cómo se guarda la información de la sesión en php

En php las sesiones son ficheros de texto guardados en disco, los cuales están en el directorio indicado en el fichero 'PHP.INI': en el apartado [Session] hay un atributo que es 'session.save_path' y que contiene, como valor, el directorio utilizado para almacenar los datos de la sesión. Cada sesión tiene un nombre de fichero temporal semejante a: '<PATH SESIÓN>/sess_<ID>' … El formato de éste es:

- Nombre de la variable
- Tipo de la variable
- s - string (cadena)
- b - boolean (0/1)
- i - integer (entero)
- a - array (matriz)
- d - float ()

(entre otros)
- Tamaño del valor
- "Valor"

nombre|Tipo:Tamaño:"Valor";
nombre|Tipo:Tamaño:"Valor";

EJEMPLO

FICHERO: sess_74e9c92b92e60b5a2a5c2de075135ff1

array|a:2:{s:8:"element1";s:4:"key1";s:8:"element2";s:4:"key2";}integer|i:100;string|s:15:"Cadena de texto";char|s:1:"a";bool|b:1;float|d:123.000323;

::::CADENA ESTRUCTURADA::::

array|a:2:{
s:8:"element1";
s:4:"key1";
s:8:"element2";
s:4:"key2";
}
integer|i:100;
string|s:15:"Cadena de texto";
char|s:1:"a";
bool|b:1;
float|d:123.000323;

FICHERO: sesiones.php

<?php
session_start ();
// Registra las variables de sesión si no están registradas
session_register ("array", "integer", "string", "char", "bool", "float");
$array = array ("element1" => "key1", "element2" => "key2");
$integer = (int)100;
$string = "Cadena de texto";
$char = "a";
$bool = true;
$float = (float)123.000323;
?>

PHP utiliza dos métodos para identificar la sesión, mediante una cookie con un identificador único de la sesión, o bien mediante un parámetro: SID, el cual contiene éste identificador. Si el navegador no dispone de cookies éste último será el método utilizado por Php; si está activado ([Session]->session.use_trans_sid), Php reescribirá los enlaces de tipo:

- a:href
- area:href
- frame:src
- input:src
- form:fakeentry

Estos valores son los que hay por defecto en el apartado [Session]-> del fichero PHP.INI, "url_rewriter.tags"…

A diferencia de las cookies, las cuales guardan la información en el cliente, los valores, se guardan en el servidor, de forma inaccesible al cliente. Por ejemplo; puedes tener una variable en la sesión actual que sea 'logado', con el valor 'true', ésta información será accesible a todas las páginas PHP, y cada sesión tendrá sus propios valores, (cada explorador abierto en cada ordenador tiene su sesión propia (siempre y cuando se abra)), con ésto tienes la certeza de estar logado, ya que si fueran cookies el cliente podría manipular el valor y acceder a ellas, otra forma de saber si se está logado es meter en las cookies dos valores con el nombre del usuario y el password, y verificar cada vez estos valores,… a parte de que es mucho mas rápido obtenerlos de la sesión, esta información pasaría constantemente de una forma poco segura y además se quedaría guardado en el cliente, y otras personas podrían verlo.

Las funciones de soporte de sesiones aparecieron a partir de PHP 4, sin embargo, para las personas que utilicen PHP 3, pueden recurrir a librerías hechas por ellos o a la librería PHPLIB.

A partir de la versión 4.0 están disponibles, almenos que en la configuración se defina lo contrario.

« Php | Sesiones

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