Hola buen día he estado buscando como cambiar el tiempo que duran las sesiones activas ya que en el sistema que estoy trabajando estan por defecto, el problema radica en que los usuarios trabajan con con algunos formularios que son muy grandes y por cualquier motivo inician a trabajar llenado la información pero se levantan dejan el equipo una media hora y al regresar quieren continuar pero la sesion expiró, ya he probado usando los siguiente:
ini_set('session.gc_maxlifetime', 3600);
session_set_cookie_params(3600);
session_set_cookie_params(3600,"/");
setcookie("TestCookie", '', time()+3600);
Los he probado de forma individual o juntos pero la sesion expira en media hora o lo que esté por defecto en el servidor y necesito que por lo menos esté activa una hora este el el código que utilizo para hacer login e iniciar las seciones:
Código del login:
Código PHP:
Ver original<?php
require_once("clases/class.usuario.php");
$login = new usuario();
if($login->iniciado() != "")
{
$login->redirigir('administracion/index.php');
}
if(isset($_POST['submit'])) {
if($login->Ingresar($Usuario,$Email,$Contrasena))
{
$login->redirigir('administracion/index.php');
}
else
{
$error = "¡Datos Incorrectos!";
}
}
?>
Método ingresar de mi clase usuarios
Código PHP:
Ver originalpublic function Ingresar($Usuario,$Email,$Contrasena)
{
try
{
$consulta = $this->conexion->prepare("SELECT IdUsuario, Nombres, Apellidos, Usuario, Contrasena, Email, Rol, Estado, Imagen FROM gesco_usuarios WHERE Usuario=:uname OR Email=:umail ");
$consulta->execute(array(':uname'=>$Usuario, ':umail'=>$Email)); $datosUsuario=$consulta->fetch(PDO::FETCH_ASSOC);
if($consulta->rowCount() == 1)
{
if(password_verify($Contrasena, $datosUsuario['Contrasena']))
{
if($datosUsuario['Estado'] == 1)
{
$_SESSION['Jdp8e8sA2n'] = $datosUsuario['Nombres']."<br/>".$datosUsuario['Apellidos'];
$_SESSION['cx7cJPtM4f'] = $datosUsuario['Usuario'];
$_SESSION['f66VhVfj68'] = $datosUsuario['Rol'];
$_SESSION['fp6D8XNY87'] = $datosUsuario['IdUsuario'];
$_SESSION['Jl7IfpaUl8'] = $datosUsuario['Email'];
$_SESSION['Km8JgqbVm9'] = $datosUsuario['Imagen'];
return true;
}
else if($datosUsuario['Estado'] == 0)
{
return false;
}
}
else
{
return false;
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
Código que incluyo en cada página php para mantener la sesion en cada página a la que ingreso
Código PHP:
Ver original<?php
$LaRutaClaseusuario = $_SERVER['DOCUMENT_ROOT'].'/clases/class.usuario.php';
require_once ($LaRutaClaseusuario);
$session = new usuario();
if(!$session->iniciado())
{
$session->redirigir('irIndex.php');
}
?>
No se que puedo hacer para que la sesión se mantenga más tiempo, gracias por pasar.