Página 1 de 1

Sessiones

NotaPublicado: 2005-06-27 05:14 @260
por Lor
Agradeceria si me pudiesen ayudar en lo siguiente:

Estoy trabajando con el modulo CGI::Session, y utilizo cookies para identificar la session del usuario. Con que metodo realizo el paso de la cookie a los distintos pl que forman parte de la sesion.???

1) Estoy utilizando un print $q->header(-cookie=>$cookie);

2) Tengo en el mismo programa un print Location...... el cual deja de funcionar al colocar la linea 1

3) ¿El Pl que es invocado y que recibe la Cookiee de la sesion ¿Que metodo usa para leerla??


Como veran tengo varios problemas, y he leido bastante sobre que modulos usar para el manejo de sesiones, pero ahun estoy bastante perdida.

Muchas gracias por su respuesta y colaboracion. :)

NotaPublicado: 2005-06-27 08:26 @393
por monoswim
Hola Lorena, te comento que la cookie una vez que la mandas correctamente debería funcionarte para todos los .pl del sitio...Te digo lo de correctamente porque hay muchas formas de mandar una cookie al navegador, y depende de como la hayas configurado...Con el Location no deberías tener problemas siempre y cuando sea una página del mismo sitio...

http://perlenespanol.com/archives-tut/000047.html#more

Acá tenés un tutorial que te explica que parámetros podés mandarle a la cookie y a continuación te doy un ejemplo de una cookie que yo usé para trabajar con sesiones y trabaja perfectamente...

print qq~Set-Cookie: usuario=juanito; path=/;\n~;

Esa simple cookie sigue viva mientras el usuario tenga abierto el navegador, y te funciona para todos los scripts que haya en el servidor, puede navegar tranquilamente...

Para leer las cookies lo tenés explicado en el tutorial...

Saludos

NotaPublicado: 2005-06-27 12:15 @552
por Perl user
monoswim escribiste:Hola Lorena, te comento que la cookie una vez que la mandas correctamente debería funcionarte para todos los .pl del sitio...Te digo lo de correctamente porque hay muchas formas de mandar una cookie al navegador, y depende de como la hayas configurado...Con el Location no deberías tener problemas siempre y cuando sea una página del mismo sitio...

http://perlenespanol.com/archives-tut/000047.html#more

Acá tenés un tutorial que te explica que parámetros podés mandarle a la cookie y a continuación te doy un ejemplo de una cookie que yo usé para trabajar con sesiones y trabaja perfectamente...

print qq~Set-Cookie: usuario=juanito; path=/;\n~;

Esa simple cookie sigue viva mientras el usuario tenga abierto el navegador, y te funciona para todos los scripts que haya en el servidor, puede navegar tranquilamente...

Para leer las cookies lo tenés explicado en el tutorial...

Saludos


Bueno, no he checado el tutorial... pero la solución que tiene Lorena es la correcta, y la tuya no es incorrecta, pero no es lo mejor, Tener código "hardcodeado", es decir, poner todo a mano no es lo mejor... si estás usando CGI.pm, por qué no dejar que se encargue de todo, tal como lo hace Lorena? De esa manera es portable y correcto ( y mucho mas sencillo de leer ).

Lorena tu problema radica en que bueno... al establecer la cookie con header(), le estás indicando efectivamente un encabezado HTTP, que contiene aparte de lo demás, la directiva Set-Cookie, por lo tanto al exponer "Location", estas intentando reescribir el header ya antes mandado ( Location es parte del header ), y eso te causa error.

Ahora bien, para "extraer" el valor de una cookie, basta con llamar:
Código: Seleccionar todo
# valor es lo que contiene el atributo -value al establecer la Cookie
$value = cookie( 'valor' );


Esta información y más al respecto la puedes obtener de la página de documentación de CGI.pm en el apartado de HTTP Cookies, y también te recomiendo que cheques el módulo CGI::Cookies.

Saludos,

sesiones

NotaPublicado: 2005-06-27 13:47 @616
por Lor
Gracias a todos los que colaboraron en mi respuesta.

Esto va para Perl user El problema que indicas es el correcto en relacion al location, pero como puedo solucionarlo??

Yo si o si necesito utilizar este location para direccionar a uno u otro lado dependiendo del login del usuario.

Re: sesiones

NotaPublicado: 2005-06-27 17:41 @778
por Perl user
Lor escribiste:Gracias a todos los que colaboraron en mi respuesta.

Esto va para Perl user El problema que indicas es el correcto en relacion al location, pero como puedo solucionarlo??

Yo si o si necesito utilizar este location para direccionar a uno u otro lado dependiendo del login del usuario.


Ok, endiendo, pero que tiene que ver extraer el valor de una cookie con redireccionar? la única manera en la que podrías contraer error es al generar y establecer una cookie y en ese mismo cgi mandar el redirect.

Normalmente son 2 pasos.... Una pantalla de login, la cual es un formulario hacía tu script que hará la validacion, y si es valido ok te establece la cookie.

Eso si no es que ya tienes la cookie establecida, cierto?

Ahora para verificar si está establecida, solo es necesario con extraer el valor y listo, no necesitas generar un header, ahora bien para el location te recomiendo que uses:
Código: Seleccionar todo
print redirect( uri => "meep" );



Saludos,