Hola tengo un problema con la duración de la sessión, por un lado buscando encontre que puede ser por el recolector de basura. Por eso he puesto session.cookie_lifetime con los mismos segundo 86400 = 24horas.

Mi problema es que la sessión no dura eso, coloco en un pestaña del navegador la url de este archivo y hago login con el parametro get como ejemplo para probar con este script pero a la media hora o hora se borra.

Con init_get obtengo session.cookie_lifetime,session.gc_maxlifetime y muestra 86400 he probado este archivo en mi serviro local con ubuntu y en uno hosting de 1and1 y sigue sin funcionar.

Mi idea es que la session dure 24 horas independiente si el usuario esta utilizando la apliacacion o la tiene en un pentaña o ventana sin cerrar claro.

En el php.ini los parametros para el recolector de basura estan así : session.gc_probability = 0 session.gc_divisor = 100 y session.cookie_lifetime = 0 y session.gc_maxlifetime = 0 aunque estos dos ultimos los cambio en el script.

Código PHP :

<?php
$nombre_sesion="login";
$duracion_sesion ="86400";
session_name($nombre_sesion);
session_set_cookie_params($duracion_sesion);
ini_set("session.cookie_lifetime",$duracion_sesion);
ini_set('session.gc_maxlifetime', $duracion_sesion);

session_start();

if($_GET["login"]==1){ $_SESSION["autentificado"]="SI";}

if ($_SESSION["autentificado"] != "SI") {

     echo "Session cerrada";

} else {

    echo "Session ok";
  
}
?>