Directivas de la sesión de PHP
Todas las directivas relacionadas con la sesión se pueden establecer utilizando el PHP.ini archivo. Se mencionan algunas directivas PHP relacionadas con la sesión.
Directiva de sesión | objetivo |
---|---|
sesión.save_handler | El valor de la directiva puede ser archivos o mm o sqlite o usuario. El mm se usa para manejar los datos de la sesión utilizando la memoria. El sqlite se usa para manejar los datos utilizando la base de datos SQLite. El usuario se usa para manejar datos utilizando la función definida por el usuario. |
session_auto_start | El valor de esta directiva será En para iniciar la sesión automáticamente; De lo contrario, será Apagado. |
sesión.nombre | Se usa para establecer el nombre de la sesión y el nombre de sesión predeterminado es phpsessid. |
sesión.save_path | Se utiliza para establecer la ruta donde se almacenará la información de la sesión. El valor predeterminado de esta directiva es archivos. |
sesión.función hash | Se usa para generar una identificación de sesión de hash. 0 se usa MD5 algoritmo y 1 se usa para el Sha algoritmo. |
sesión.cache_expire | Se usa para establecer el tiempo de vencimiento de la sesión. |
sesión.use_cookies | Se utiliza para almacenar la identificación de la sesión empleando la cookie. 1 se usa para emplear cookies y 0 se empluta para no usar la cookie. |
sesión.use_only_cookies | Se usa para emplear la cookie solo para almacenar la identificación de la sesión. |
sesión.Cookie_Secure | Se utiliza para definir si la cookie empleará la conexión segura o no. Se habilita utilizando el encendido y discapacitado empleando el Apagado valores. |
sesión.cookie_lifetime | Se usa para establecer la vida útil de la cookie. |
Puede visitar el siguiente enlace para saber más sobre las directivas de la sesión.
https: // www.php.net/manual/en/ini.lista.php
Funciones de la sesión de PHP
PHP tiene muchas funciones incorporadas para tareas de manejo de sesiones. Algunas funciones útiles de manejo de sesiones se mencionan a continuación.
Función de sesión | objetivo |
---|---|
session_start () | Se usa para comenzar una nueva sesión o reiniciar la sesión anterior. |
ID de sesión() | Se usa para configurar o obtener o ambos establecidos y obtener la ID de sesión. |
session_create_id () | Se usa para crear una nueva identificación de sesión. |
session_name () | Se usa para configurar o obtener o ambos establecidos y obtener el nombre de sesión actual. |
session_status () | Se utiliza para obtener información sobre el estado actual de la sesión. |
session_reset () | Se usa para reinicializar la matriz de sesión. |
session_unset () | Se usa para todas las variables de sesión. |
session_destroy () | Se utiliza para destruir todos los datos de sesión registrados. |
session_encode () | Se usa para codificar los datos de la sesión actuales. |
session_decode () | Se usa para decodificar los datos de sesión actuales codificados. |
session_commit () | Se utiliza para escribir datos de sesión y cerrar la sesión. |
session_abort () | Se usa para eliminar los cambios en la matriz de sesión y cerrar la sesión. |
session_regenerere_id () | Se utiliza para generar una nueva sesión para la sesión existente. |
session_cache_limiter () | Se usa para establecer o obtener el limitador de caché de la sesión actual. |
Session_cache_expire () | Se usa para establecer o obtener el tiempo de expiración de caché de la sesión actual. |
Puede visitar el siguiente enlace para saber más sobre las funciones de sesión incorporadas de PHP: https: // www.php.net/manual/en/ref.sesión.php.
Variable de sesión de PHP
PHP utiliza una matriz asociativa llamada $ _Session para almacenar datos de sesión. Es la variable 'superglobal' a la que se puede acceder desde cualquier lugar del script. Los valores se inicializan en esta variable después de crear una sesión y esta variable se vuelve no establecida después de destruir la sesión.
Manejo de la sesión
El servidor web puede realizar el manejo de la sesión utilizando la base de datos o el archivo. El manejo de la sesión se puede hacer utilizando el navegador del usuario si el navegador admite las cookies. Pero si las cookies del navegador son deshabilitadas por el usuario, entonces de esta manera no se puede usar para el manejo de la sesión. Entonces, usar el servidor web es la mejor manera de manejar sesiones. Los pasos para el manejo de la sesión se mencionan a continuación.
Crear e imprimir la identificación de la sesión
PHP tiene dos funciones incorporadas para crear o reiniciar una sesión anterior y las mencionadas anteriormente en este tutorial. El uso session_start () La función se ha mostrado aquí que se utiliza para generar una nueva sesión o volver a generar una sesión anterior. Verifica la sesión existe para el visitante y crea una nueva sesión si el visitante visita la página la primera vez. Cree un archivo PHP con el siguiente script que crea una nueva sesión para el visitante y genera una ID de sesión única que ha sido imprimida por otra función incorporada nombrada ID de sesión().
// Iniciar una nueva sesiónProducción
La siguiente salida aparecerá después de ejecutar el script anterior en el navegador web. La ID de sesión única se ha impreso aquí y esta identificación permanecerá sin cambios cada vez que se actualice la página. Si el navegador está cerrado y reabierto nuevamente para ejecutar este script, se imprimirá una nueva ID de sesión.
Almacenar e imprimir los datos de la sesión
Se requiere inicializar la variable $ _session después de crear la ID de sesión para almacenar los datos de la sesión. Cree un archivo PHP con el siguiente script que almacena el valor de la clave "Nombre" de la variable $ _Session [] después de comenzar una nueva sesión. El Está establecido() la función se ha utilizado en el script para verificar la variable $ _session ['nombre'] está configurada o no. Si el valor no es establecido para esta variable, se establecerá un valor para esta variable. Si el valor se ha establecido para esta variable, el valor de esta variable se imprimirá con el formato.
// Iniciar una nueva sesiónSe ha iniciado una nueva sesión para el usuario.
";Bienvenido de nuevo, ' . $ _Session ["Nombre"] . '.
';Producción
La siguiente salida aparecerá después de ejecutar el script anterior la primera vez. Según la salida, se ha generado una nueva ID de sesión para el visitante porque el usuario visita la página por primera vez. La variable $ _session ['Nombre'] se ha inicializado por un valor de cadena y se ha imprimido un mensaje para la nueva sesión.
La siguiente salida aparecerá si el usuario visita la página la próxima vez. El valor de la variable $ _session ['nombre'] se ha impreso aquí. El siguiente mensaje se mostrará cada vez hasta que se destruya la sesión o se eliminen los datos de la sesión o se vuelva a abrir el navegador.
Crear una sesión después de autenticar al usuario
Normalmente, la sesión se crea para el usuario registrado del sitio web después de autenticar al usuario en función de los datos válidos para evitar el acceso no autorizado al usuario para los datos confidenciales. El manejo de la sesión es muy importante para que el sitio web de comercio electrónico rastree la actividad del usuario. Los datos relacionados con la autenticación del usuario se almacenan en el servidor de la base de datos como MySQL, SQLite, SQL Server, PostgreSQL, etc. La información del usuario para la autenticación se ha almacenado en texto aquí para simplificar. Crear un archivo de texto llamado usuarios.TXT con el siguiente contenido y el archivo contiene el nombre, el correo electrónico, el nombre de usuario y la contraseña de tres usuarios. Cada campo está separado por una coma (,) en el archivo. La autenticación se verificará utilizando el nombre de usuario o el correo electrónico y la contraseña.
usuarios.TXT
nombre, correo electrónico, nombre de usuario, contraseñaCrear un archivo html llamado Inicla de inicio de sesión.html con el siguiente script que mostrará un formulario de inicio de sesión con dos campos de texto y un botón Enviar. El nombre de usuario o correo electrónico se tomará en el primer campo de texto y la contraseña se tomará en el segundo campo de texto. Cuando presione el botón Enviar, la página se redirigirá a Sesión3.php que se creará más tarde.
Inicla de inicio de sesión.html
Cree un archivo PHP con el siguiente script que autentique la información de inicio de sesión en función de los datos de la usuarios.TXT archivo e inicializa los datos de la sesión después de autenticar al usuario. El $ Iniciar sesión Se ha utilizado la variable para rastrear si la información de inicio de sesión enviada es válida o no válida y el valor inicial de esta variable es FALSO. La primera función isset () se usará para verificar si la variable $ _session ['nombre'] está configurada o no. Si esta variable no es Eet, la segunda función ISSET () se usará para verificar el valor de $ _post ['UserEmail'] variable. Si se establecen los valores de esta variable, los valores de formulario enviados se almacenarán en dos variables. Si los valores de estas variables no son vacíos, el usuarios.TXT El archivo se abrirá para leer para verificar los valores del formulario enviado coinciden con los valores del correo electrónico o nombre de usuario y la contraseña de cualquier usuario del archivo de texto. El explotar() La función se ha utilizado para dividir cada línea del archivo en función de la coma (,) y almacenar los valores divididos en cuatro variables. El recortar() La función se ha utilizado para eliminar el espacio adicional de ambos lados de la variable. Si se encuentra alguna entrada coincidente, la variable $ _Session ['Nombre'] se inicializará con el nombre del usuario coincidente que se recuperó del archivo y un mensaje de éxito, ""Estás iniciado sesión con éxito."Se imprimirá. Si no se encuentra una entrada coincidente, el formulario de inicio de sesión aparecerá nuevamente. Si la página se revisa después de crear la sesión, se imprimirá un mensaje de bienvenida con el valor de $ _session ['Nombre'].
Sesión3.php
// Defina la variable para verificar el inicio de sesión válidoEstás iniciado sesión con éxito.
";Bienvenido de nuevo, ". $ _Session ['Nombre']."
";Producción
La siguiente salida aparecerá después de ejecutar el script anterior la primera vez. El usuario debe escribir el nombre de usuario o el correo electrónico y la contraseña válidos para la autenticación.
La dirección de correo electrónico y la contraseña se han proporcionado en el siguiente formulario de inicio de sesión. Estos valores serán emparejados por la dirección de correo electrónico y la contraseña de cada usuario del archivo.
Aparecerá la siguiente salida si el usuario presiona el botón Enviar después de proporcionar la dirección de correo electrónico válidas y la contraseña. Aparecerá la misma salida si el usuario proporciona un nombre de usuario válido en lugar de la dirección de correo electrónico para la autenticación. El formulario de inicio de sesión aparecerá nuevamente si el usuario proporciona un nombre de usuario o un correo electrónico o contraseña no válidos.
Si el usuario recarga la misma página nuevamente después de iniciar sesión correctamente, aparecerá la siguiente salida. El valor de la variable $ _session ['nombre'] se ha imprimido aquí con el mensaje de bienvenida. Esta salida permanecerá sin cambios hasta que la sesión expire para el usuario o el navegador.
Modificar los datos de la sesión
Los datos de la sesión se pueden modificar después de inicializar la variable de sesión. Cree un archivo PHP con el siguiente script para saber la forma de modificar la variable de sesión después de inicializar la variable $ _session. La función isset () se ha utilizado en el script para verificar si la variable $ _session ['visitar'] está configurada o no. Si la variable $ _session ['visitar'] no se establece, esta variable se inicializará a 1. Si la página se actualiza o vuelve a cargar, el valor de esta variable se incrementará en 1 para cada actualización. El valor actual de esta variable se imprimirá cada vez que se cargue la página.
// Comienza la sesiónLa página se visita para ". $ _Session ['Visitar']. "Times
";Producción
La siguiente salida aparecerá después de ejecutar el script anterior por primera vez. El valor de $ _session ['visitar'] es 1 aquí porque cuando la página se carga por primera vez, esta variable se inicializa a 1.
La siguiente salida aparecerá si la página se carga 3 veces. El valor de $ _session ['visitar'] se ha incrementado en 1 cada vez que la página se vuelve a cargar.
Eliminar los datos de la sesión
Los datos de la sesión se pueden eliminar utilizando unset () función o el session_unset () función de PHP. Crear un archivo php con el siguiente script que usa el unset () función para eliminar los datos de la sesión. La variable $ _Session ['UserName'] se ha inicializado con un valor de cadena después de comenzar la sesión. A continuación, el valor de esta variable se ha imprimido antes y después de ejecutar la función unset () para eliminar los datos de la sesión de la variable $ _session ['username'].
// Comienza la sesiónProducción
La siguiente salida aparecerá después de ejecutar el script anterior. El valor de $ _session ['username'] se ha imprimido antes de ejecutar el unset () función y la variable $ _session ['username'] se quedó vacía después de ejecutar unset () función.
Destruir la sesión
La información de la sesión se puede eliminar sin resolver los valores de la variable de $ _session que se ha mostrado en el ejemplo anterior. PHP tiene una función incorporada nombrada session_destroy () Para eliminar toda la información relacionada con la sesión por completo. Cree un archivo PHP con el siguiente script que muestra el uso de la session_destroy () función. Se ha utilizado un formulario con un botón de envío en el script para destruir la sesión. Después de comenzar una sesión, la función ISSET () se ha utilizado para verificar el "Sesión de destrucciónSe presiona el botón y la identificación de la sesión no está vacía. La sesión actual será destruida llamando al session_destroy () función si la identificación de la sesión existe si el "Sesión de destrucciónEl usuario presiona el botón. Si la página se visita por primera vez y el "Sesión de destrucción"El botón no se presiona, la información de la sesión se almacenará en la variable $ _Session ['Nombre']. Si la página se visita nuevamente después de almacenar la información de la sesión, pero el "Sesión de destrucciónNo se presiona el botón, entonces se imprimirá el mensaje de bienvenida.
// Iniciar una nueva sesiónSe ha iniciado una nueva sesión para el usuario.
";Bienvenido de nuevo, ' . $ _Session ["Nombre"] . '.
';Producción
La siguiente salida aparecerá después de ejecutar el script anterior por primera vez. Si el usuario hace clic en el "Sesión de destrucciónBotón "La sesión se destruirá por completo y aparecerá una página en blanco.
Ejemplo 5: Datos de sesión de codificación y decodificación
Los datos de la sesión se pueden codificar para generar un valor de cadena mediante la serialización de los datos y los datos de la sesión codificados pueden convertirse en la matriz deserializando los datos. Cree un archivo PHP con el siguiente script que codifica los datos de la sesión utilizando el session_encode () función y decodifica los datos de la sesión codificados utilizando el session_decode () función. De acuerdo con el siguiente script, las variables $ _session ["nombre"] y las variables $ _session ["correo electrónico"] se inicializarán con dos valores después de comenzar la sesión. Los valores de estas variables se han codificado utilizando el session_encode () función e impresa más tarde. El session_unset () La función se ha utilizado para desastar la variable $ _session. A continuación, los datos de cadena codificados se han convertido en la matriz utilizando el session_decode () función.
// Iniciar una nueva sesiónSe genera una nueva sesión.
";Bienvenido, ' . $ _Session ["Nombre"] . '.
';Producción
La siguiente salida aparecerá después de ejecutar el script anterior. Después de la codificación, los datos de la sesión serializados se han imprimido en la salida. Según la salida, la tubería (|) y los símbolos de colon (:) se han incrustado con los datos de la sesión para crear la cadena codificada y la longitud de cada valor de cadena también se ha incluido en la cadena codificada. A continuación, la cadena codificada ha sido decodificada y el valor de la variable $ _Session ["Nombre"] se ha imprimido.
Conclusión
El manejo de la sesión es una característica muy importante de cualquier aplicación basada en la web. PHP tiene muchas directivas de manejo de sesiones y funciones de sesión incorporadas para manejar tareas relacionadas con la sesión. Algunos usos de las funciones de sesión de uso común se han mostrado en este tutorial utilizando scripts PHP. La tarea de algunas funciones de sesión se puede realizar utilizando las directivas de sesión particulares. Por ejemplo, si el session_auto_start la directiva se establece en En Luego comenzará la sesión automáticamente sin usar el session_start () función. El uso de una tabla de base de datos es una forma eficiente de almacenar los datos de la sesión que no están cubiertos en este tutorial. Pero el propósito de la sesión para la aplicación web y la forma de implementar la función de manejo de la sesión utilizando el script PHP se ha mostrado en este tutorial para ayudar a los nuevos usuarios de PHP a agregar esta función en su aplicación.