Foros del Web » Programando para Internet » PHP »

Tiempo de una sesion...

Estas en el tema de Tiempo de una sesion... en el foro de PHP en Foros del Web. Estimados amigos y maestros: Quisiera saber como puede implementar el tiempo de duración de una sesion en PHP. Busque en el manual de PHP.NET pero ...
  #1 (permalink)  
Antiguo 18/05/2003, 00:04
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Tiempo de una sesion...

Estimados amigos y maestros:
Quisiera saber como puede implementar el tiempo de duración de una sesion en PHP. Busque en el manual de PHP.NET pero no encontré una funcion que lo haga.
Alguien sabe como?
De antemano gracias.
__________________
________________________________________

Ugho.
  #2 (permalink)  
Antiguo 18/05/2003, 00:34
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 9 meses
Puntos: 0
Podes modificar los segundos a travez del php.ini en la linea que especifica el
session.gc_maxlifetime=1440;

O definirlo en cada una de las paginas, antes del session_start, con
ini_set("session.gc_maxlifetime","1440");

(1440 son segundos)
  #3 (permalink)  
Antiguo 18/05/2003, 18:59
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Gracias amigo zeus_bsas:
Lo voy a probar y si tengo problemas te cuento.
SALUDOS
__________________
________________________________________

Ugho.
  #4 (permalink)  
Antiguo 20/10/2003, 09:11
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Estimados amigos porque no me resulta esto que me dijo el amigo zeus_bsas?
coloque esto antes de la funcion session_start();
pero no pasa nada.
Alguna sugerencia?
SALUDOS.
__________________
________________________________________

Ugho.
  #5 (permalink)  
Antiguo 20/10/2003, 11:07
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 9 meses
Puntos: 0
Creo que alguna vez tambien me paso algo parecido.
Recuerdo que en ese entonces el problema que mencionas se me soluciono especificando tambien, ademas de la duracion, la ubicacion en donde seria guardada la sesion. Proba con esto y contame:

Código PHP:
ini_set("session.gc_maxlifetime","1440"); //segs a tu necesidad
$ruta='../sesiones'// cambiala a tu necesidad
session_save_path("$ruta");
sesion_start();
.
.


Última edición por zeus_bsas; 20/10/2003 a las 11:09
  #6 (permalink)  
Antiguo 20/10/2003, 12:08
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Lo voy a probar y te cuento.
SALUDOS
__________________
________________________________________

Ugho.
  #7 (permalink)  
Antiguo 20/10/2003, 12:25
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Estimado amigo he hecho lo que me dices pero nada:
-------------------------------------------------
ini_set("session.gc_maxlifetime","10");
$ruta='/sesiones';
session_save_path("$ruta");
session_start();
----------------------------------------------------
Incluso he puesto la ruta completa de mi servidor LINUX osea:

$ruta='/var/www/....';

pero nada.
Me sale el siguiente error:
-----------------------------------------------------------------------
Warning: open(/sesiones/sess_ba7e0af1464ba3da469a7e1d3ec9062b, O_RDWR) failed: No existe el fichero o el directorio (2) in Unknown on line 0

Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/sesiones) in Unknown on line 0
---------------------------------------------------------------------------
Que hago?
que me falto?
SALUDOS
__________________
________________________________________

Ugho.
  #8 (permalink)  
Antiguo 20/10/2003, 12:42
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Bueno aunque no lo dije he creado tambien la carpeta SESIONES dentro de la carpeta donde guardo mis archivos PHP.
SALUDOS
__________________
________________________________________

Ugho.
  #9 (permalink)  
Antiguo 20/10/2003, 12:57
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 9 meses
Puntos: 0
Me parece que estas poniendo mal la ruta.
Si este script esta ubicado en el mismo nivel de la carpeta sesiones, la ruta deberia ser

$ruta='sesiones';

Y si el script esta ubicado en un directorio y éste esta en el mismo nivel de la carpeta sesiones, la ruta seria

$ruta='../sesiones';

No se si influye, pero por las dudas prestale antencion a las mayusculas y minusculas de los directorios.

Probalo.

Última edición por zeus_bsas; 20/10/2003 a las 12:59
  #10 (permalink)  
Antiguo 20/10/2003, 15:02
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Bueno amigo tenias razon con la ruta pero ahora me sale el siguiente error:
----------------------------------------------------
Warning: open(sesiones/sess_ba7e0af1464ba3da469a7e1d3ec9062b, O_RDWR) failed: Permiso denegado (13) in /var/www/..../nuevo/sid_verifica.inc.php on line 159

------------------------------------------------------------
donde sid_verifica.inc.php es el archivo PHP donde creo mis sesiones a todas la paginas.
Alguna idea de cual es mi problema ahora?
Espero que me tengas paciencia....
SALUDOS
__________________
________________________________________

Ugho.
  #11 (permalink)  
Antiguo 20/10/2003, 15:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Para los problemas de rutas .. usa a ser posible rutas ABSOLUTAS .. en tu caso:

/var/www/..../nuevo/sesiones

y dale permisos de escritura/lectura (chmod 777 o algo menos) al directorio sesiones si es que no lo tiene.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 20/10/2003, 21:05
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 9 meses
Puntos: 0
Como te dijo Cluster, revisa los permisos para ese directorio. Ahi yo no te puedo ayudar porque nunca estuve del lado de la configuracion del server.
Para los tipos de ruta, tambien hacele caso a Cluster, lo mio fue un mero ejemplo que sirvio para mostrate el error que llevabas hasta ese momento.
  #13 (permalink)  
Antiguo 21/10/2003, 08:24
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Muchas gracias amigos por sus respuestas, en realidad ahora no me sale ningun error, le di permiso 777 a mi carpeta de sesiones, !!PERO!! cuando le pongo el tiempo de sesion no hace nada, le coloco 5 segundos y al cabo de los 5 sigue con la sesion abierta (no muere la sesion).
Debo hacer algo mas?
SALUDOS.
__________________
________________________________________

Ugho.
  #14 (permalink)  
Antiguo 21/10/2003, 08:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Pero ....

¿Que esperas que haga?

Es decir .. sin cerrar el navegador .. ¿esperas que muera la sesión? .. En otras palabras .. que "por si solo" si recargas página (pasados ese tiempo) la sesión muera?...

Bueno, el caso no es tan sencillo .. hay várias directivas más del tema sesiones que afectan a todo esto .. De la combinación de estas así funcionará tu sistema ..

Lee este mensaje:
http://www.forosdelweb.com/showthrea...hreadid=147464


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #15 (permalink)  
Antiguo 21/10/2003, 09:15
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 4 meses
Puntos: 0
Bueno esta bien pero no te enojes...
En realidad nunca habia trabajado con el "tiempo" de sesiones y pense que era como me dices , que mueria la sesion al cabo del tiempo que se le asigna y que al recargar la pagina ya no existía la sesion, pero me equivoque.
Voy a documentarme mas....
SALUDOS
__________________
________________________________________

Ugho.
  #16 (permalink)  
Antiguo 21/10/2003, 09:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Ni mucho menos me enojo .. solo te preguntaba si ese era el concepto que tenias.

El tema que planteas de "recargar página" y que la sesión expiere se suele solventar usando un campo extra en tu BD asignado a tu usuario conectado donde guardas la fecha/hora que entró al sistema (se autentificó) .. (lo puedes guardar en una variable de sesión) y lo compruebas con la fecha/hora actual para determinar si todavía es válida su sesión o no .. (haciendo una resta de esas fechas junto con el tiempo que determines de "expiración" de tus sesiones).

Así trabajan por ejemplo los sistemas que indican cuantos usuarios hay "on line" .. (salvo que hacen una consulta a la BD y .. ese dato podrías llevarlo en una variable de sesión también para tu caso ..). Si no me equivoco, en las FAQ's tienes un ejemplo.

Guardar el dato de la fecha que entró tu usuario por última vez al sistema te vendría bien para hacer sistemas que tengan encuenta la "concurrencia" (dos "login" con el mismo usuario/password = cuenta .. a la vez mientras uno está ya en el sistema ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #17 (permalink)  
Antiguo 21/10/2003, 15:13
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 9 meses
Puntos: 0
Pero Cluster, mira que a mi me funciona tal cual quiere Ugho. En mi sitio, si no realizas ninguna accion en 15 minutos la sesion muere. Y si recargas la pagina lo podes ver, porque te manda a otro lugar por no tener la sesion.
A mi nunca me hizo falta nada mas. Claro que la cookie sigue viva mientras el navegador este abierto, pero si no se realiza ninguna peticion la cookie no deberia seguir sirviendo de acuerdo al tiempo de vida de la sesion. Asi es como me funciona a mi, y creo que es lo que quiere Ugho, y si a mi me anda, hay que encontrarle la vuelta para que a el tambien.
  #18 (permalink)  
Antiguo 21/10/2003, 16:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Si, zeus_bsas .. tambien depende del tiempo que tenga de expiración de sus cookies:

session.cookie_expire o algo así ..

Para evitar problemas con cookies (si se usan para propagar el SID) .. el tiempo de expiración siempre lo he controlado así como he comentado.

El problema que plantea gestionar el tiempo de expiración así .. es que en ese intervalo de tiempo. Si cierras tu página y vuelves atras (o bien usas un link con el SID propagado) vas a entrar denuevo en tu sesión activa .. Peligroso en sistemas publicos (lease: cibercafes, universidades.. etc).

Yo uso 0 sec. en tiempo de expiración (cookies y gc_ ..) y el tiempo lo controlo desde "código". Una aplicación más de gestionar el tiempo de expiración así sería la de hacer un panel de control donde un administrador "mate" sesiones de X usuario (actualizando el tiempo de inicio de la sesión)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:01.