sesion pasar paginas entre cerrar array php session

pasar - ¿Cómo funcionan las sesiones de PHP?(no "¿cómo se usan?")



php session put (4)

Los archivos de sesión generalmente se almacenan en, digamos, /tmp/ en el servidor y se llaman sess_{session_id} . He estado mirando los contenidos y no puedo entender cómo funcionan realmente.

Obtener el nombre de la variable y el contenido del archivo es fácil. Pero, ¿cómo sabe PHP qué sesión pertenece a quién?

Session_id parece totalmente aleatorio y una dirección IP puede tener varios usuarios, y cada usuario puede tener varias sesiones si tiene más de una ventana abierta.

¿Entonces, cómo funciona?


El ID de la sesión es aleatorio y se transmite en una cookie o en la URL, según la configuración. Es posible que ya haya visto este PHPSESSID = xxxx en algunas URL, también hay una cookie con ese nombre.


En la situación general:

  • la identificación de la sesión se envía al usuario cuando se crea su sesión.
  • se almacena en una cookie (llamada, por defecto, PHPSESSID )
  • esa cookie es enviada por el navegador al servidor con cada solicitud
  • el servidor (PHP) usa esa cookie, que contiene el session_id, para saber qué archivo corresponde a ese usuario.

Los datos en los archivos de sesiones son el contenido de $_SESSION , serializado (es decir, representado como una cadena, con una función como serialize ) ; y no se serializa cuando PHP carga el archivo para llenar el array $_SESSION .


A veces, la identificación de la sesión no se almacena en una cookie, sino que también se envía en URL, pero eso es bastante raro hoy en día.


Para obtener más información, puede echar un vistazo a la sección Manejo de sesiones del manual, que brinda información útil.

Por ejemplo, hay una página sobre Cómo pasar la ID de la sesión , que explica cómo se pasa la identificación de la sesión de una página a otra, utilizando una cookie o en las URL, y qué opciones de configuración afectan a esto.


Las sesiones en PHP se inician utilizando la función session_start (). Al igual que la función setcookie (), la función session_start () debe aparecer antes que cualquier HTML, incluidas las líneas en blanco, en la página. Se verá así: <?php session_start( );?><html><head> ....... etc. La función session_start () genera un identificador de sesión aleatorio y lo almacena en una cookie en la computadora del usuario ( esta es la única información de sesión que realmente está almacenada en el lado del cliente.) El nombre predeterminado para la cookie es PHPSESSID, aunque esto se puede cambiar en los archivos de configuración de PHP en el servidor (la mayoría de las compañías de hosting lo dejarán en paz). Para hacer referencia a la ID de la sesión en su código PHP, por lo tanto, haría referencia a la variable $ PHPSESSID (es un nombre de cookie, ¿recuerdas eso de las Cookies?)


¿Cómo funciona la sesión de PHP?

  • En primer lugar, PHP crea un número de identificador único largo de 16 bytes (almacenado como una cadena de 32 caracteres hexadecimales, por ejemplo, a86b10aeb5cd56434f8691799b1d9360 ) para una sesión individual.

  • La cookie PHPSESSID pasa ese número de identificación único al navegador de los usuarios para guardar ese número.

  • Se crea un nuevo archivo en el servidor con el mismo nombre de número de identificación único con el prefijo sess_ (es decir, sess_a86b10aeb5cd56434f8691799b1d9360 ).

  • El navegador envía esa cookie al servidor con cada solicitud.

  • Si PHP obtiene ese número de identificación único de la cookie PHPSESSID (en cada solicitud), PHP busca en el directorio temporal y compara ese número con el nombre del archivo. Si ambos son iguales, recupera la sesión existente, de lo contrario, crea una nueva sesión para ese usuario.

Una sesión se destruye cuando el usuario cierra el navegador o abandona el sitio. El servidor también finaliza la sesión después de que expira el período predeterminado de tiempo de la sesión. Estos son los pasos simples del mecanismo que PHP está usando para manejar la sesión. Espero que este artículo te ayude a comprender cómo funciona PHP SESSION.

Vea este artículo para más detalles. ¿Cómo funciona la sesión de PHP?