Cómo iniciar una sesión php
La clave para usar sesiones de PHP es la session_start () función. Llama session_start () en todas las páginas y, posteriormente, tener acceso a todos los elementos de la $ _SESSION array.
Puede parecer un poco de un extraño nombre para la función, session_start (), porque en la mayoría de las páginas que realmente sólo quiere continuar la sesión y acceder a las variables que están allí. Pero en la realidad, session_start () hace las dos cosas: Se inicia una nueva sesión si es necesario y continúa una sesión existente en su caso.
los session_start () función se llama simplemente así:
? lt; phpsession_start () - // Otras declaraciones PHP aquí>?
Aquí está el código de algunas páginas que siguen, cuando accedió a la primera página de la aplicación. Esto demuestra el uso de la session_start () función y luego la creación de una variable para mantener el tiempo de acceso inicial.
Este es el código para la primera página, llamada pagina1.php.
? lt; phpsession_start () - $ _ SESSION ['accessTime'] = date ("M / d / Y g: i: sa") - print "Pagina 1
"-print" Usted accedió a la solicitud en: ". $ _SESSION ['accessTime'] - print"Continúa en la página siguiente"->
Cuando se ve en un navegador, la página se parece a lo siguiente:
En la siguiente página en la aplicación a continuación, inicia la sesión y se puede acceder a las variables ya expuestas en la sesión. Este es el código para la segunda página, pagina2.php.
lt; phpsession_start () - print "Esta es la página 2
"-print" Usted accedió a la solicitud en: ". $ _SESSION ['accessTime'] - print"Continúa en la página siguiente"->
Fíjese en el código que la variable $ _SESSION ['AccessTime'] no se establece de nuevo, sino que simplemente accede después de iniciar la sesión. Cuando estás en pagina1.php y haga clic en el enlace para ir a la página siguiente, se obtiene una página como ésta:
Usted puede almacenar casi cualquier cosa en una sesión, pero usted debe ser consciente de que la sesión puede, ya veces no, a desaparecer por una variedad de razones. Una de las razones de una sesión podría desaparecer es que el tiempo de espera. Si los usuarios se sientan en una página por mucho tiempo, la sesión podría no estar allí cuando comienzan a utilizar la aplicación de nuevo.
La implicación práctica de la sesión de la desaparición es que cualquier variable que ha establecido previamente también desaparecerán. Por lo tanto, es una buena práctica para comprobar si la sesión contiene los valores que usted espera antes de usarlos.
Hay un par de maneras de hacer esto. Una forma sería la de comprobar todas las variables antes de acceder a ellos. Por ejemplo, puede cambiar el código para comprobar la $ _SESSION ['AccessTime'] la variable antes de utilizarla en la producción.
? lt; phpsession_start () -if (! isset ($ _ SESSION ['accessTime'])) {die (header ("Location: pagina1.php")) -}imprimir "Esta es la página 2
"-print" Usted accedió a la solicitud en: ". $ _SESSION ['accessTime'] - print"Continúa en la página siguiente"->
Este anuncio ha añadido el siguiente código:
if (! isset ($ _ SESSION ['accessTime'])) {die (header ("Location: pagina1.php")) -}
La ubicación de ese código es importante. Debido a que el código tiene que enviar un encabezado HTTP, tiene que aparecer antes de cualquier otra salida. Así por ejemplo, si ese código apareció debajo de la salida de "Esta es la página 2", que no funcionaría porque las cabeceras ya han sido enviados. El código aparece antes de cualquier salida, pero también importante, aparece después de la session_start () función.
La mejor práctica es comprobar la existencia de variables de sesión antes de usarlos, como se acaba de mostrar. Sin embargo, puede llegar a ser muy complicado de todas las variables que puede utilizar en una gran aplicación. Con esto en mente, otra opción es establecer una variable de sesión global y comprobar su existencia en lugar de cada variable individualmente. He aquí cómo hacerlo.
Aquí es una versión actualizada del código, pagina1.php. En este código, no hay una sola adición, una nueva variable de sesión llamada appStarted.
? lt; phpsession_start () -$ _SESSION ['AppStarted'] = cierto-$ _SESSION ['AccessTime'] = date ("M / d / Y g: i: sa") - print "Pagina 1
"-print" Usted accedió a la solicitud en: ". $ _SESSION ['accessTime'] - print"Continúa en la página siguiente"->
A continuación, puede cambiar otras páginas en la aplicación para comprobar la existencia de esta variable, como en notar el cambio.
? lt;! phpsession_start () - if (isset ($ _ SESSION ['appStarted'])) {Die (header ("Location: pagina1.php")) -} print "Esta es la página 2
"-print" Usted accedió a la solicitud en: ". $ _SESSION ['accessTime'] - print"Continúa en la página siguiente"->