¿Cómo cambiar el tiempo de espera de la sesión en PHP?

En PHP, las sesiones se mantienen para verificar si el usuario está activo. Cuando el usuario se vuelve inactivo y se olvida de cerrar sesión en la página web, existe la posibilidad de que otros usuarios vean la página y provoquen una brecha de seguridad. De forma predeterminada, una sesión en PHP se destruye cuando se cierra el navegador. El tiempo de espera de la sesión se puede personalizar para que la página del usuario esté inactiva después de un tiempo fijo. 
Inicio de sesión: La función PHP, session_start() se utiliza para iniciar una sesión en la página web.
Sintaxis: 
 

session_start();

Variables de sesión: después del inicio de la sesión, se pueden crear variables de sesión para uso futuro. Las variables de sesión se pueden crear y los valores se pueden almacenar en esas variables de la siguiente manera:
Sintaxis: 
 

  • Crear una variable de sesión con el nombre de variable ‘var1’ y asignarle el valor de ‘5’ se puede hacer como: 
     
 $_SESSION['var1']=5;
  • La asignación de una variable a una variable de sesión se puede hacer como: 
     
$username="John";
$_SESSION['username']=$username;

Destrucción de variables de sesión y sesión: Para eliminar todas las variables de sesión que se inicializan antes de destruir la sesión, se debe utilizar el siguiente comando:
Sintaxis: 
 

  • Para destruir la sesión determinada, se debe usar el siguiente comando: 
     
session_unset();
  • Para destruir la sesión completa, se debe usar el siguiente comando: 
     
session_destroy();

Cambiar el tiempo de espera de la sesión: Teniendo en cuenta que hay una página de inicio de sesión con el botón ‘Iniciar sesión’ en un formulario HTML. Cuando el usuario hace clic en el botón ‘Iniciar sesión’, se inicia la sesión y se establecen las variables de la sesión. Se inicializa una variable de sesión para almacenar la hora de inicio de sesión. A continuación, se dirige a la página de inicio del usuario. 
 

  • Página de inicio de sesión: 
     

php

<?php
 
// Session starts
session_start();
$username = $_POST["username"];
 
if(isset($_POST["Login"])) {
 
    // Session Variables are created
    $_SESSION["user"] = $username;  
 
    // Login time is stored in a session variable
    $_SESSION["login_time_stamp"] = time(); 
    header("Location:homepage.php");
}
?>
  •  

En la página de inicio, para mantener la sesión, se llama a la función session_start() . Esto nos permite recuperar variables de sesión de esta página. Usando la función time() , se puede calcular la hora actual. La diferencia entre la hora actual y la variable de sesión creada en el momento del inicio de sesión no debe exceder el tiempo de espera deseado. Cuando se excede la duración, la sesión se destruye y la página se redirige a la página de inicio de sesión.
Como si el tiempo de espera de la sesión = 10 minutos . La sesión debería destruirse automáticamente después de 10 minutos = 10*60 segundos = 600 segundos
 

  • Página de inicio: 
     

php

<?php
 
session_start();
 
// To check if session is started.
if(isset($_SESSION["user"]))
{
    if(time()-$_SESSION["login_time_stamp"] >600) 
    {
        session_unset();
        session_destroy();
        header("Location:login.php");
    }
}
else
{
    header("Location:login.php");
}
?>
  •  

Publicación traducida automáticamente

Artículo escrito por manmayi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *