Foros del Web » Programando para Internet » PHP »

Extender el tiempo de una Sesion

Estas en el tema de Extender el tiempo de una Sesion en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema con la duda con la duración de la sesion. Lo que necesito es que la sesion dure 12 hs. ...
  #1 (permalink)  
Antiguo 06/06/2012, 17:46
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Extender el tiempo de una Sesion

Hola a todos! Tengo un problema con la duda con la duración de la sesion. Lo que necesito es que la sesion dure 12 hs. aprox y actualmente no llega a ese tiempo ni por casualidad.

El código que utilizo para cargar la sesion es este:
Código PHP:
session_start();
if(isset(
$_SESSION['usuario']) && $_SESSION['estado'] == "conectado"){
             
"El usuario si esta online";
}else{
             
header('Location: ../login.php'); 
}

// y más abajo tengo este código:

if(!isset($_SESSION['usuario'])) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{
$antes $_SESSION["SESION_TIME"];
// Si lleva más de 1 minuto (60 segundos)
if (time()-$antes 900000) {
// Libramos la sesion
session_unset();
session_destroy();
echo 
'Finalizó la sesión. <br/>';

¿Podrían decirme por favor como hacer para que la sesion dure 12 hs o más?

Desde ya muchas gracias.

MArx
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 06/06/2012, 17:56
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Extender el tiempo de una Sesion

En teoría, configurando en el php.ini puedes indicar el tiempo de la sesión, sin embargo me he dado cuenta que hay algo que según la cantidad de usuarios puede acortar o alargar la duración de la sesión.

Una opción sería que usaras cookies, otra, que un script oculto (una llamada ajax) se ejecutara cada x minutos, con lo cual al haber actividad la sesión persiste.
  #3 (permalink)  
Antiguo 06/06/2012, 17:58
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Extender el tiempo de una Sesion

Claro... el problema es que no tengo acceso al php.ini xq es un server pago y la idea seria hacer lo posible para meterlo con php o con lo que sea. Lo necesito para liquidar este trabajo.

Muchas gracias amigo por la pronta respuesta.
Saludos.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #4 (permalink)  
Antiguo 06/06/2012, 20:44
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Extender el tiempo de una Sesion

Holas,

Probastes con usar el session_cache_expire ?.

http://www.php.net/manual/en/functio...che-expire.php

Saludos
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 10/06/2012, 12:59
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Extender el tiempo de una Sesion

Probé agregando esto antes del session_start pero no, tampoco funciona... la sesion se cierra igual a los 20 y pico de min.

Código PHP:
/* establecer el limitador de caché a 'private' */

session_cache_limiter('private');
$cache_limiter session_cache_limiter();

session_cache_expire(600);
$cache_expire session_cache_expire();

/* iniciar la sesión */

session_start(); 
¿Alguna otra sugerencia por favor?
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #6 (permalink)  
Antiguo 10/06/2012, 21:58
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Extender el tiempo de una Sesion

Holas,

Yo probe con cambiar con el ini_set con session.gc_maxlifetime:

http://www.php.net/manual/en/functio...pire.php#68728

Y si logre cambiar, aunque no creo que sea recomendable por seguridad hacer mas largo el tiempo de la sesion, esto es una sesion en el servidor o de servidor, si tienes control en de tu php.ini puedes hablitar o modificarlo, pero sino, creo que a lo mucho podrias usar cookies (encriptados):

http://www.php.net/manual/en/function.setcookie.php

Saludos
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 12/06/2012, 04:38
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Extender el tiempo de una Sesion

No puede ser que solo a mí no me funcione.

Necesito que me saquen de una duda que tengo por favor:

- ¿Los códigos que publiqué, están bien o están mal?
- ¿Tienen que ir colocados en todas las páginas que contengan el session_start();?
- ¿No se puede hacer que funcione SIN modificar el php.ini (no tengo acceso a este en el servidor)?
- ¿Existe un método vía PHP, AJAX, etc. que FUNCIONE?

Gente, me falta solo esto para terminar un trabajo. Cualquier idea será una salvación para mí.

Muchas gracias.
Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #8 (permalink)  
Antiguo 12/06/2012, 05:06
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Extender el tiempo de una Sesion

Amigo tu codigo

/* establecer el limitador de caché a 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

session_cache_expire(600);
$cache_expire = session_cache_expire();

/* iniciar la sesión */

session_start();

no esta mal, pero estas colocando private, en el session_cahe_limiter y con respecto a tu codigo lo correcto es usuario, que es el nombre de tu session


Saludos,

Etiquetas: extender, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:00.