Icono del sitio Tursos

Como Definir el Tiempo de Vida de una Variable de Sesión en PHP

En este tutorial veremos como definir el tiempo de vida de las sesiones en PHP, este ejemplo puede resultar útil para definir cuando caduca por defecto la sesión de un usuario en un sistema de login/identificación.

Empezamos el código con session_start();

<?php 
session_start();

En este paso se crea una variable que defina el tiempo que el usuario este inactivo para que lo saque el sistema, 900 esta expresado en segundos que se traduce a 15min de duracion.

    $inactivo = 900;

Buscamos la existencia de la variable de session en una condicion, luego en la variable $vida_session almacenamos el resultado de la resta entre la $_SESSION[‘tiempo’] y el tiempo actual (time).
Comparamos este resultado ($vida_session) con el tiempo de inactividad que definimos mas arriba, si el resultado es mayor que la variable $inactivo entonces la sesión se destruye y redirecciona a la (hipotética) pagina de login.

    if(isset($_SESSION['tiempo']) ) {
    $vida_session = time() - $_SESSION['tiempo'];
		if($vida_session > $inactivo)
		{
			session_destroy();
			header("Location: login.php"); 
		}
    }

Caso contrario se actualiza la sesion almacenando el tiempo actual en la variable $_SESSION[‘tiempo’]

    $_SESSION['tiempo'] = time();
?>

Código final

<?php
session_start();

    $inactivo = 900;

    if(isset($_SESSION['tiempo']) ) {
    $vida_session = time() - $_SESSION['tiempo'];
		if($vida_session > $inactivo)
		{
			session_destroy();
			header("Location: login.php"); 
		}
    }

    $_SESSION['tiempo'] = time();
?>