Foros del Web » Programando para Internet » PHP »

sessiones

Estas en el tema de sessiones en el foro de PHP en Foros del Web. pues, se dice que las sesiones duran 20 minutos predeterminadamente... ¿como hago para que duren una hora??? muchas gracias...
  #1 (permalink)  
Antiguo 17/07/2004, 19:22
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 4 meses
Puntos: 5
sessiones

pues, se dice que las sesiones duran 20 minutos predeterminadamente...

¿como hago para que duren una hora???

muchas gracias
  #2 (permalink)  
Antiguo 19/07/2004, 06:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. mas que "se dice" .. lo determina la directiva:
session.gc_maxlifetime de tu php.ini (lo puedes ver en un phpinfo() )

El valor que veras es expresado en segundos .. Por defecto son 1440 segundos = 24 minutos. Si quieres más tiempo .. modificalo. Pero, .. el uso de las sesiones siempre ha sido de tiempos de expiración 0 o cercanos a cero por seguridad. Deberías usar cookies para tiempos de expiración de "sesiones" más largos en combinación con uso de sesiones.

Un saludo,
  #3 (permalink)  
Antiguo 20/07/2004, 20:43
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 4 meses
Puntos: 5
Hola, muchas gracias por tu respuesta... entonces:
debo poner una cookie asi:

//vemos si el usuario y contraseña es váildo
if ($_POST["user"]=="nombre" && $_POST["contrasena"]=="contraseña"){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
//pongo la cookie
SetCookie("persona",$nombre,time()+86400*24);
header ("Location: index.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: autentificacion.php?errorusuario=si");

¿correcto o incorrecto???

muchas gracias
  #4 (permalink)  
Antiguo 21/07/2004, 06:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No, .. cuando hablo de cookies en sesiones es por qué PHP ya crea automáticamente esa cookie para propagar ahí el SID (Identificador Único de sesión), pero eso depende de como propagues el SID (en cookies o por el URL).

El tema de la propagación del SID no depende de la "duración" de esta sesión que .. como ya te comenté .. lo define en última instancia la directiva session.gc_maxlifetime, pero .. si propagas el SID en cookies a efectos del "cliente" la duración del SID en ese cliente lo determina el tiempo de expiración de esa cookie que PHP crea (en tu php.ini lo define) y que .. por norma general (por defecto) está a 0 segundos de expiración .. es decir .. pese que el SID es válido o pueda serlo .. el SID que viaja en esa cookie en el cliente ya no existe y .. a no ser que recuperes ese SID por otro médio .. no podrías retomar la sesión (sus datos) que todavía está vigente en el servidor.

Ahora, si tu quieres usar cookies para otra cosa .. adelante, pero ya estás usando sesiones .. así que esa variable "persona" deberías guardarla como una variable más en tu sesión .. Es más .. te sobraría ese "autentificado=SI" .. si creas a "Persona" con el $nombre .. por qué si validas la existencia de $_SESSION['persona'] ya tienes dos cosas hechas de paso: 1) validación 2) saber ese dato en todas las páginas/scripts de tu sitio (y sesión en curso).

Un saludo,
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 23:13.