Foros del Web » Programando para Internet » PHP »

Autentificador Cluster: duración sesiones

Estas en el tema de Autentificador Cluster: duración sesiones en el foro de PHP en Foros del Web. Hola Cluster Estoy usando tu Autentificador pero las sesiones se vencen muy rápido y tengo que loggearme a cada rato. Hay alguna forma de prolongar ...

  #1 (permalink)  
Antiguo 14/11/2005, 12:18
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
Autentificador Cluster: duración sesiones

Hola Cluster
Estoy usando tu Autentificador pero las sesiones se vencen muy rápido y tengo que loggearme a cada rato.
Hay alguna forma de prolongar la duración de las variables de sesión ?
Indicame paso a paso por favor porque ya sabes que me cuesta.
Muchas gracias
  #2 (permalink)  
Antiguo 14/11/2005, 13:16
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 4 meses
Puntos: 4
que tal;

aqui te dejo este link, tal vez te ayude un poco
http://www.forosdelweb.com/f18/sesion-no-destruye-por-que-334458/

son el diaolgo cibernetico de cluster y yo y compañia acerca de las sesiones
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #3 (permalink)  
Antiguo 14/11/2005, 13:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Gracias Gerifaltus .. ya no me acordaba de ese mensaje (bastante completo bajo mi punto de vista) ..

El caso es que "Autentificator" no define y gestiona el tiempo de expiración de las sesiones, deja a la configuración de PHP que cada uno use dicha taréa (no llega a tanto el ejemplo básico de uso de sesiones que en el fondo es lo que es Autentificator)

Un saludo,
  #4 (permalink)  
Antiguo 14/11/2005, 21:24
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
Muchas gracias a los dos... el tema sesiones me cuesta bastante, estoy leyendo los post... tal vez vuelva por aquí
  #5 (permalink)  
Antiguo 15/11/2005, 13:14
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
Chicos, no puedo

Leí los post, leí por todos lados pero yo no puedo tocar el php.ini de ese server, debo modificar temporalmente la duración sólo en mi script.

Estoy intentando agregar esto en el aut_verifica.inc.php:

Código PHP:
    // En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
    
session_set_cookie_params(8640000"/"$HTTP_SERVER_VARS["HTTP_HOST"], 8640000);

     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta página.
    
session_cache_limiter('nocache,private');
    
session_cache_expire(1440);
$cache_expire session_cache_expire(); 
Y no debe estar bien porque no logro nada... sigue expirando a los 24 minutos.
Por favor ayuuuuuda
  #6 (permalink)  
Antiguo 15/11/2005, 13:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ten cuidado con el orden de las funciones .. algunas se usan -antes- del session_Start() y otras despues (sino, no tienen efecto .. como por ejemplo session_name() .. si la usas despues de session_start() no se altera el nombre de la sesión).

En tus pruebas .. session_cache_expire() se usa -antes- de session_start() (revisa la documentación oficial de esa función: www.php.net/session_cache_expire) ... De todas formas .. esa función no afecta para nada al tiempo de vida de una sesión .. sino al de la página generada en las cache's de navegadores y demás (que es bien distinto).

Lo que necesitas hacer es alterar el valor de:
session.gc_maxlifetime

Algunas directivas de php.ini (como esa) se pueden alterar su valor vía:;
ini_set() .. otras con un .htaccess (según el proveedor) y otras sólo vía php.ini

En tu caso, la directiva session.gc_maxlifetime la puedes modificar por todo (por ini_set(), etc ...) no sólo por un php.ini

http://www.php.net/manual/en/ini.php#ini.list

Debes usar dicha función al principio de tu script .. antes de cualquier session_xx() preferentemente ... y lo tendrás que usar en todos los scripts que usen sesiones.

Un saludo,
  #7 (permalink)  
Antiguo 15/11/2005, 14:30
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
Ay Cluster, GRACIAS ! pero...
Entiendo tus indicaciones y entiendo el uso de ini_set() pero ahora caigo que yo estoy propagando las variables de manera automática en la URL... tengo trans_sid en ON... es decir... me sirve en ese caso modificar la directiva session.gc_maxlifetime para prolongar la duración de mi sesión ?
Sorry pero si estoy propagando por URL cómo hago ???
Paciencia y ayuda por favor
  #8 (permalink)  
Antiguo 15/11/2005, 14:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Una cosa es la propagación del SID y otra la vida de una sesión ...

Lo único que sucede es que si propagas el SID en cookies, a su vez el tiempo de duración de esa cookie que PHP crea para propagar el SID (si así lo usas en tu php.ini: session.use_cookie = ON .. y/o session.use_only_cookies = ON) también influye: si es menor la duración de la cookie al de la sesión (session.gc_maxlifetime) perderás el "nexo" entre cliente-servidor del SID que almacena el cliente en la cookie .. por ende la sesión seguiría existiendo pero si el "cliente" perdió el SID .. no te servirá de nada dicha sesión todavía activa.

Por otro lado .. si usas Autentificator con sus redireccionamientos tipo header("Location ...") que este usa, .. si todo te funciona el SID lo estás propagando en Cookies si o si .. (a no ser que tu hayas añadido el SID a mano en esos redireccionamientos).

Un saludo,
  #9 (permalink)  
Antiguo 15/11/2005, 15:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Creo que Cluster ya lo ha explicado bastante bien y poco tengo que agregar.

Si sólo estás propagando por url (y no en cookies), no todo se hace automáticamente.
En las redirecciones con header(), por ejemplo, deberás añadir "a mano" el SID.

Saludos
  #10 (permalink)  
Antiguo 15/11/2005, 16:58
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1

Muchas gracias chicos pero no lo logro.
He agregado
ini_set( 'session.gc_maxlifetime', 172800 );
antes de cualquier sesión en mis páginas pero no hay caso.

Entiendo que no es necesario agregarlo en aut_verifica.inc.php
o si ?

También he leído por ahí que si tengo javascript incrustado donde llamo a las páginas puedo tener problemas y que el IE también trabaja mal con las variables de sesión... así que no sé qué voy a hacer con esto :(

Cariños.
  #11 (permalink)  
Antiguo 15/11/2005, 18:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por Suyta

que el IE también trabaja mal con las variables de sesión... así que no sé qué voy a hacer con esto :(
Esto es imposible porque a IE como mozilla como el que quieras solo le llega codigo HTML, es decir todo lo de las sessiones se ejecuta del lado del servidor y allí se decide que se hace con el.
  #12 (permalink)  
Antiguo 15/11/2005, 18:26
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
If you have trouble with Internet Explorer 6 and non-working sessions (all session-data is lost after clicking on a link), please look user-hints for setcookie().
You have to add the following line after session_start() to get sessions working:
Código PHP:
<?php
  
// Initalize session
  
session_start();
  
// Send modified header
  
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
?>
  #13 (permalink)  
Antiguo 15/11/2005, 18:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 19 años
Puntos: 0
El problema no son las sessiones, sino las cookies que ahora IE 6 se ha puesto más chulo con las cookies (galletas) y para que las cookies que creas te las acepte como buenas (en el nivel de privacidad) tienes que enviar la cabecera indicando ese protocolo de privacidad.

Código PHP:
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); 

Más información aquí

PD: Cada palabra tiene su sentido en lo de CP="....." no esta puesto por ponerlo :D
  #14 (permalink)  
Antiguo 16/11/2005, 05:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por Suyta

Muchas gracias chicos pero no lo logro.
He agregado
ini_set( 'session.gc_maxlifetime', 172800 );
antes de cualquier sesión en mis páginas pero no hay caso.

Entiendo que no es necesario agregarlo en aut_verifica.inc.php
o si ?

También he leído por ahí que si tengo javascript incrustado donde llamo a las páginas puedo tener problemas y que el IE también trabaja mal con las variables de sesión... así que no sé qué voy a hacer con esto :(

Cariños.
Debes incluir en aut_verifica.inc.php que es -donde- se usa session_Start().

Con eso sobraría si luego llamas (como así deberías usarlo) en todos los scripts que necesites sesiones al include("aut_verifica.inc.php")

Un saludo,
  #15 (permalink)  
Antiguo 16/11/2005, 09:12
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1

Sí lo he hecho Cluster pero no va...
  #16 (permalink)  
Antiguo 16/11/2005, 09:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usas un servicio de hosting? ..

Si es así, consulta con tu proveedor por si puedes alterar ese valor de otra forma (tal vez vía .htaacces o un "php.ini" própio para tu sitio ..algunos lo permiten y lo gestionan así).

Un saludo,
  #17 (permalink)  
Antiguo 16/11/2005, 10:50
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
El sitio está alojado en el server de la empresa pero es toda una estructura y el encargado del mantenimiento no acepta cambios
  #18 (permalink)  
Antiguo 16/11/2005, 11:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. que no acepte cambios no quiere decir que por lo menos te diga .. "así lo configuré" y así podrías hacer lo que pretendes.

Por lo demás .. si tu estás desarrollando una aplicación para esa "empresa" .. el como parte de la "empresa" debería colaborarte!!!!. Para eso está!!!

Un saludo,
  #19 (permalink)  
Antiguo 16/11/2005, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Viendo las cosas de otra forma ..

Si no puedes cambiar la configuración de PHP sobre el manejo de sesiones que hace este .. NO LO USES! ..

Hay sistemas alternativos al uso de sesiones de PHP standard o que lo mejoran modifican en algunos aspectos como el del tiempo de expiración de sesiones (que por lo demás es bastante escueto el control y soporte que PHP dá al respecto de forma "general" para toda sesión iniciada en ese servidor).

Revisa los ejemplos de los comentarios de los usuarios de PHP.net:
http://www.php.net/manual/en/functio...ve-handler.php

ahí veras que gestionan las própias sesiones en Base de datos .. lo cual te dá mejor control para hacer cosas como tiempo de vida controlado para cada sesión en curso entre otras cosas. También tienes más ejemplos completos en sitios como www.phpclasses.org

Un saludo,
  #20 (permalink)  
Antiguo 16/11/2005, 11:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 19
Antigüedad: 19 años
Puntos: 0
Perdonar que me meta por medio :-p .

Haber no es logico que solicites al que mantiene el servidor que se usa la empresa que modifique php.ini porque tu lo necesitas, lo que debes haces es "modificar" el php.ini temporalmente para tu script tu mismo... te preguntaras...
" ¿Que dices ? ¿Se te va la bola ?" sino pues mejor :P...

A ver mira existe la función ini_set puedes hacer la prueba de este modo:

Código PHP:
ini_set('session.name''prueba');
phpinfo(); 
y busca session.name

o también

Código PHP:
ini_set('session.name''prueba');
session_start();
print_r($_COOKIE); 
Nose que parametro es el que tienes que modificar tu su valor, pero creo que con eso ya podras configurarlo a tus necesidades
  #21 (permalink)  
Antiguo 16/11/2005, 11:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
aGaiNST

Resulta que eso mismo ya se le ha propuesto, lo ha probado y no le funciona. (lee unos mensajes más arriba).

Un saludo,
  #22 (permalink)  
Antiguo 16/11/2005, 16:41
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
Nada, he fracasado (por ahora)

No me quedó más remedio que incrustar un marco flotante en el panel de administración que apunta a una página (también verificada por aut_config_in.pho) que se recarga cada 20 min de modo de mantener viva la sesión antes del vto.

Ya sé que no es lo mejor pero... no encuentro otro camino.
Seguiré intentando.
Muchas, muchas gracias por toda su ayuda a todos.
  #23 (permalink)  
Antiguo 16/11/2005, 21:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Tranquila Suyta... no desesperes.

El tema de hacer tu propio manejador de sesiones utilizando la base de datos es algo que debes considerar bastante.

Además el Maestro HerSan nos dejó (en las FAQ's de PHP OO), precisamente una clase que hace todo el manejo de las sesiones desde una BD MySQL.

Es muy pero muy sencilla de utilizar. No tienes que entender todo lo que hace la clase internamente. Sólo entender cómo usarla (¿para eso no son los componentes y para eso no es el encapsulamiento?). El ejemplo de uso que pone HerSan allí mismo es más que suficiente.

Disfrútalo
  #24 (permalink)  
Antiguo 16/11/2005, 22:08
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1


Ahhhhhh ya lo estoy leyendo JPinedo

Muchas gracias !!
  #25 (permalink)  
Antiguo 19/11/2005, 10:59
 
Fecha de Ingreso: octubre-2005
Mensajes: 6
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola:
Estoy usando el autentificador de Cluster y me funciona de maravilla.

Ahora en las páginas autentificadas he incluido un animación swf. Desde la animación flash he puesto enlaces a otras páginas autentificadas pero no puedo entrar en dichas páginas pues me da el siguiente error:
ERROR cod.: 1 - Acceso incorrecto, ¡necesita autentificación!

En definitiva:
- El autentificador funciona bien con las páginas PHP,
- La página que contiene el flash tambien entras sin problema.
- Cualquier enlace desde dicha página autentificada a otra autentificada también OK.
- Pero el problema está cuando intento ir a una página autentificada desde la animación Flash.

Por favor, alguien sabe que código debo poner en el flash y en el PHP, para que cuando intento enlacer desde el swf me funcione correctamente???
Gracias por vuestra ayuda
  #26 (permalink)  
Antiguo 21/11/2005, 05:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Al parecer se pierde el SID por eso te devuelve tu página autentificada dicho error (que se refiere a la no existencia de las variables de sesión que se crearon al autentificarte).

No sé nada de flash .. pero en principio si propagas el SID en cookies (como así lo requiere autentificator bajo la configuración (php.ini): session.use_cookies = on ..) no deberías tener problemas si ese .swf donde se ejecuta es una página de tu sitio y vincula a otro script/página de tu mismo sitio (domino).

En cualquier caso, podrías propagar para ese caso concreto el SID por el URL .. No sé como en flash se toman variables .. pero de alguna forma deberas pasarla a tu .swf el SID (constante) de PHP a tu .swf para que luego puedas componer links dinámicos que lo incluyan.

Un saludo,
  #27 (permalink)  
Antiguo 21/11/2005, 17:29
 
Fecha de Ingreso: octubre-2005
Mensajes: 6
Antigüedad: 19 años, 1 mes
Puntos: 0
Después de leer por el foro algunos comentarios hice los siguientes cambios en el aut_verifica.inc.php:

//$redir=$pag_referida;
$redir= "http://www.mipaginaInicio.php";
// chequear si se llama directo al script.
/*if ($_SERVER['HTTP_REFERER'] == ""){

Ahora los enlaces desde el swf funcionan, pero no se si he bajado la seguridad en el autentificador??? Sigue siendo seguro después de las modificaciones??

Respecto a programar el Flash, me parece una escelente idea pero si ya mis conocimientos son cortitos en PHP pues en Flash estoy todavía más pegado.

Cluster, muchas gracias por tu aportación.
Gracias a personas como tú otros principiantes como yo podemos aprender algo.

Saludos
  #28 (permalink)  
Antiguo 21/11/2005, 18:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Ahora los enlaces desde el swf funcionan, pero no se si he bajado la seguridad en el autentificador??? Sigue siendo seguro después de las modificaciones??
Sigue siendo igual de seguro pues se valida igualmente -siempre- por la existencia o no de las variables de sesión.

PD: por cierto en mi respuesta anterior me confundí totalmente del error .. La explicación que dí es referente al error "cod.2" .. el "cod.1" se refiere a la obtención de la variable "HTTP_REFERER".

Un saludo,
  #29 (permalink)  
Antiguo 25/11/2005, 10:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 6
Antigüedad: 19 años, 1 mes
Puntos: 0
Cita:
Iniciado por Cluster
Sigue siendo igual de seguro pues se valida igualmente -siempre- por la existencia o no de las variables de sesión.

PD: por cierto en mi respuesta anterior me confundí totalmente del error .. La explicación que dí es referente al error "cod.2" .. el "cod.1" se refiere a la obtención de la variable "HTTP_REFERER".

Un saludo,
Gracias!!!
  #30 (permalink)  
Antiguo 30/11/2005, 21:22
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 20 años, 2 meses
Puntos: 1
Volví derrotada

Estoy tratando de utilizar esto:
http://www.forosdelweb.com/showpost....01&postcount=4

Pero no entiendo cómo aplicarlo al aut.config.inc.php del Autentificator.
Por favor... ayuuuuuuuda
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 21:23.