Establecer el tiempo de espera de la sesión en PHP

Establecer el tiempo de espera de la sesión en PHP
La inactividad de un usuario registrado se verifica mediante el tiempo de espera de la sesión. Cuando un usuario inicia sesión en un sitio web, se crea una sesión para ese usuario y la sesión se destruye cuando el usuario inicia sesión o cierra el navegador. El tiempo de espera de la sesión se utiliza para establecer el límite de tiempo para la inactividad del usuario. Supongamos, si el límite de tiempo de espera de la sesión se establece en 60 segundos y el usuario está inactivo durante 60 segundos, entonces la sesión de ese usuario estará expirada y el usuario requerirá iniciar sesión nuevamente para acceder al sitio. La forma de establecer o actualizar el tiempo de espera de la sesión en PHP ha mostrado en este tutorial.

Manejo de sesiones en PHP

El session_start () la función se utiliza para crear una nueva sesión para el usuario. El nombre de sesión predeterminado es PhPsessid y se usa para verificar la sesión existe o no. Si no se encuentra información de cookie o sesión, se generará una nueva sesión para el usuario, de lo contrario, la sesión actual se utilizará para el usuario.

Configuración del tiempo de espera de la sesión

El límite de tiempo de espera de la sesión se puede establecer estableciendo el valor de dos directivas en el php.ini archivo o usando la función ini_set () en el script php. Las directivas se dan a continuación.

  1. sesión.gc_maxlifetime
  2. Se utiliza para establecer el límite de tiempo en segundos para almacenar la información de la sesión en el servidor durante mucho tiempo.

  3. sesión.cookie_lifetime
  4. Se utiliza para establecer el límite de tiempo de vencimiento para la cookie PhpSessid.

Establecer el tiempo de espera de la sesión en PHP

Las formas de establecer el valor de tiempo de espera de la sesión en PHP para manejar la sesión de un usuario se han mostrado en esta parte del tutorial utilizando múltiples ejemplos.

Ejemplo-1: Establezca el valor de tiempo de espera de la sesión utilizando las directivas PHP

Cree un archivo PHP con el siguiente script para conocer la forma de establecer el tiempo de espera de la sesión utilizando las directivas PHP y las sesiones de manejo en función de los valores de la directiva. El ini_set () la función se ha utilizado en el script para establecer el valor del sesión.gc_maxlifetime y sesión.cookie_lifetime directivas. La duración de la sesión se ha establecido en 2 segundos para fines de prueba. La variable superglobal $ _Cookie Array se ha utilizado aquí para manejar la sesión. La nueva sesión se generará para el usuario cuando el script se ejecutará en el navegador y después de dos segundos, la sesión será expirada.

// Establecer el tiempo de espera de la sesión durante 2 segundos
$ Tiempo de espera = 2;
// Establecer el MaxLifetime de la sesión
ini_set ("sesión.gc_maxlifetime ", $ timeOut);
// Establezca la vida útil de las cookies de la sesión
ini_set ("sesión.cookie_lifetime ", $ timeOut);
// Iniciar una nueva sesión
session_start ();
// Establecer el nombre de sesión predeterminado
$ s_name = session_name ();
// verifique la sesión existe o no
if (isset ($ _cookie [$ s_name]))
setcookie ($ s_name, $ _cookie [$ s_name], tiempo () + $ timeOut, '/');
La sesión de echo "se crea para $ s_name.
";

demás
La sesión de eco "está caducada.
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior por primera vez. La salida muestra el nombre de usuario de sesión predeterminado, PhpSessid.

La siguiente salida aparecerá si la página se actualiza después de 2 segundos.

Ejemplo-2: Establezca el valor de tiempo de espera de la sesión usando $ _session matriz

Cree un archivo PHP con el siguiente script para establecer el valor de tiempo de espera de la sesión utilizando la variable superglobal PHP, $ _session. La duración del tiempo de la sesión se ha establecido en 5 segundos para fines de prueba. A continuación, el tiempo de solicitud del usuario para la página se ha almacenado en una variable con nombre $ tiempo. Cuando la duración del tiempo entre el $ tiempo variable y la última actividad del usuario será de más de 5 segundos, luego la sesión actual del usuario será destruida y se generará una nueva sesión. El session_unset () y session_destroy () Las funciones se han utilizado en el script para destruir la sesión.

// Iniciar una nueva sesión
session_start ();
// establece la duración de la sesión durante 5 segundos
$ duración = 5;
// Lea el tiempo de solicitud del usuario
$ Time = $ _Server ['request_time'];
// Verifique la sesión del usuario o no
if (isset ($ _ session ['last_activity']) &&
($ Time - $ _Session ['last_activity'])> $ duración)
// desastar las variables de sesión
session_unset ();
// destruir la sesión
session_destroy ();
// Comienza otra nueva sesión
session_start ();
echo "se crea una nueva sesión.
";

demás
Echo "La sesión actual existe.
";
// Establecer la hora de la última actividad del usuario
$ _Session ['last_activity'] = $ Time;
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior por primera vez.

La siguiente salida aparecerá si la página se actualiza después de 5 segundos.

Ejemplo-3: Establezca el valor de tiempo de espera de la sesión usando $ _session Array and Time () Función

Cree un archivo PHP con el siguiente script para establecer el valor de tiempo de espera de la sesión usando la variable superglobal PHP, $ _Session, y la función PHP incorporada, Time (). La función Time () devuelve el valor actual de la marca de tiempo del sistema. La duración del tiempo de la sesión se ha establecido en 600 segundos (10 minutos) en el script.

El $ _session ['inicio'] se ha utilizado para almacenar la hora de inicio de la sesión. Cuando la duración del tiempo entre la hora actual y la hora de inicio de la sesión será de más de 10 minutos, la sesión actual del usuario será destruida. Las funciones session_unset () y session_destroy () se han utilizado en el script como el ejemplo anterior para destruir la sesión.

// Iniciar una nueva sesión
session_start ();
// verificar la hora de inicio de la sesión está configurada o no
si(!isset ($ _ sesión ['inicio']))

// Establecer la hora de inicio de la sesión
$ _Session ['inicio'] = Time ();

// verifique que la sesión haya caducado o no
if (isset ($ _ session ['start']) && (time () - $ _session ['inicio']> 600))
// desastar las variables de sesión
session_unset ();
// destruir la sesión
session_destroy ();
La sesión de eco "está caducada.
";

demás
Echo "La sesión actual existe.
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior por primera vez. El mensaje vencido se mostrará si la página se actualiza después de 10 minutos.

Conclusión

En este tutorial se han mostrado tres formas diferentes de establecer el valor de tiempo de espera de la sesión para manejar la sesión de un usuario en PHP. Los usuarios de PHP obtendrán el concepto básico de implementar la sesión del usuario utilizando variables $ _cookie y $ _ _Session y podrán aplicarla en su script después de leer este tutorial.