Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2017, 08:37
Avatar de MLDGATO
MLDGATO
 
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 2
Pregunta Cambiar el tiempo de las sesion

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
  1. <?php
  2.  
  3.     session_start();
  4.     require_once("clases/class.usuario.php");
  5.     $login = new usuario();
  6.     if($login->iniciado() != "")
  7.     {
  8.         $login->redirigir('administracion/index.php');
  9.     }
  10.     if(isset($_POST['submit']))
  11.     {
  12.         $Usuario = strip_tags($_POST['Usuario']);
  13.         $Email = strip_tags($_POST['Email']);
  14.         $Contrasena = strip_tags($_POST['Contrasena']);
  15.         if($login->Ingresar($Usuario,$Email,$Contrasena))
  16.         {
  17.             $login->redirigir('administracion/index.php');
  18.         }
  19.         else
  20.         {
  21.             $error = "¡Datos Incorrectos!";
  22.         }
  23.     }
  24.  
  25. ?>
Método ingresar de mi clase usuarios
Código PHP:
Ver original
  1. public function Ingresar($Usuario,$Email,$Contrasena)
  2.         {
  3.             try
  4.             {
  5.                 $consulta = $this->conexion->prepare("SELECT IdUsuario, Nombres, Apellidos, Usuario, Contrasena, Email, Rol, Estado, Imagen FROM gesco_usuarios WHERE Usuario=:uname OR Email=:umail ");
  6.                 $consulta->execute(array(':uname'=>$Usuario, ':umail'=>$Email));
  7.                 $datosUsuario=$consulta->fetch(PDO::FETCH_ASSOC);
  8.                 if($consulta->rowCount() == 1)
  9.                 {
  10.                     if(password_verify($Contrasena, $datosUsuario['Contrasena']))
  11.                     {  
  12.                         if($datosUsuario['Estado'] == 1)
  13.                         {
  14.                             $_SESSION['Jdp8e8sA2n'] = $datosUsuario['Nombres']."<br/>".$datosUsuario['Apellidos'];
  15.                             $_SESSION['cx7cJPtM4f'] = $datosUsuario['Usuario'];
  16.                             $_SESSION['f66VhVfj68'] = $datosUsuario['Rol'];
  17.                             $_SESSION['fp6D8XNY87'] = $datosUsuario['IdUsuario'];
  18.                             $_SESSION['Jl7IfpaUl8'] = $datosUsuario['Email'];
  19.                             $_SESSION['Km8JgqbVm9'] = $datosUsuario['Imagen'];
  20.                             return true;
  21.                         }
  22.                         else if($datosUsuario['Estado'] == 0)
  23.                         {
  24.                             return false;
  25.                         }
  26.                     }
  27.                     else
  28.                     {
  29.                         return false;
  30.                     }
  31.                 }
  32.             }
  33.             catch(PDOException $e)
  34.             {
  35.                 echo $e->getMessage();
  36.             }
  37.         }
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
  1. <?php
  2.  
  3.     session_start();
  4.     $LaRutaClaseusuario = $_SERVER['DOCUMENT_ROOT'].'/clases/class.usuario.php';
  5.     require_once ($LaRutaClaseusuario);
  6.     $session = new usuario();
  7.    
  8.     if(!$session->iniciado())
  9.     {
  10.         $session->redirigir('irIndex.php');
  11.     }
  12. ?>

No se que puedo hacer para que la sesión se mantenga más tiempo, gracias por pasar.