Pregunta

Nunca he querido permitir a un usuario Para que el sistema durante cualquier periodo de tiempo, así que nunca vi un uso para un función "recordarme". Empecé a pensar en cómo se hace sin embargo y me gustaría alguna aclaración.

Actualmente estoy almacenar mis sesiones en una base de datos. Lo que siempre ha desconcertado a mí era cómo, a pesar de que no establece explícitamente una cookie, uno se coloca en el navegador. Estoy un poco confundido porque una sesión es una sesión y una cookie es una cookie. No veo cómo una sesión establece una cookie.

También me gustaría saber si, simplemente definiendo otra variable de sesión en la matriz de sesión para mantener al usuario conectado, sería suficiente o habría que todavía tienen que establecer una cookie?

¿Fue útil?

Solución

  

Lo que siempre ha desconcertado a mí era cómo, a pesar de que no establece explícitamente una cookie, uno se coloca en el navegador.

Un gestor de sesiones tiene que identificar qué sesión pertenece a cada usuario.

La gran mayoría de las bibliotecas de sesión Para ello, establezca una cookie.

  

(IS) establecer otra variable de sesión en la matriz de sesión para mantener al usuario conectado sería suficiente o habría que todavía tienen que establecer una cookie?

La mayoría de las bibliotecas de sesión definido cookies de sesión . Estas son las galletas sin un tiempo de expiración especificada. Que caduquen cuando el navegador se cierra y no son suficientes para poner en práctica un "Remember Me" característica (que se espera que persista en los reinicios del navegador, por lo que debe tener un tiempo de caducidad explícita).

Otros consejos

Con el fin de extraer los datos de la sesión de vuelta de su base de datos se necesita una clave. Esto se llama el identificador de sesión.

El identificador de sesión tiene que ser almacenado en alguna parte. Ya sea como parte de la cadena de URL que los puestos cliente de nuevo o, más comúnmente, en una cookie en el cliente. Cuando la solicitud se publica, la sesión se lee el valor de la cookie y sabe que registran a retirarse de almacenamiento de sesión.

Esto sucede automáticamente.

La única razón para usar sesión es si los datos que desea conservar es mayor que 4 KB (limitaciones del navegador); o si el tiempo necesario para extraer los datos de su servidor es mayor que la lectura desde el almacenamiento de sesión.

Si la cantidad de datos que está almacenando es menos de 4 KB recomendaría encarecidamente que acaba de establecer que en la cookie para empezar. Yo por lo general almacenar las cosas como el identificador de usuario, el usuario nombre de pila, y un par de otros atributos. Tenga en cuenta que es trivial para inspeccionar un valor cookies, por lo que esta información debe ser encriptada antes de ir al cliente.

Otra cosa es si el tiempo de consulta para extraer los datos que necesita de la fuente original es pequeño, entonces optar por hacer eso en lugar de colocarlo en la sesión. De esa manera se consigue solamente cuando realmente lo necesita en lugar de con cada carga de página única.

Al explicar la relación entre la galleta y la Sesión:

PHP utiliza cookies para identificar de forma exclusiva la sesión para cada usuario. Esa es la única manera más fiable porque cookie se envía cada vez que solicita un archivo desde el servidor. Utilizando el token en la cookie, que es también el identificador de sesión, PHP buscará el directorio tmp para ver si existe la sesión. Si existe la sesión, las variables se cargan desde el archivo correcto y usted será capaz de acceder a las variables de la sesión.

Por lo tanto, las cookies almacenan el identificador de sesión que se requiere para identificar el usuario utiliza los cuales sesión. Así es también como secuestro de sesiones se producen, cuando la gente puede cambiar la identificación de la sesión de cookies para utilizar identificador de sesión de otra persona.

La aplicación de las sesiones PHP subyacente establece la cookie. Puede modificar esto y tener el valor de ID de sesión aprobada en la cadena de consulta, pero yo no lo recomiendo. No utiliza la cookie, PHP hace. Se hace referencia al valor de ID de sesión almacenada en la cookie para realizar búsquedas de datos de la sesión.

  

También me gustaría saber, si simplemente establecer otra variable de sesión en la matriz de sesión para mantener al usuario conectado sería suficiente o habría que todavía tienen que establecer una cookie?

Una vez que el usuario cierra el navegador, la sesión se murió y se elimina la cookie. No creo que cualquier mecanismo sale de persistir el valor de sesión, y por buenas razones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top