Página 1 de 1

Sesiones otra vez.

NotaPublicado: 2005-06-20 09:37 @442
por rorris
Hola. Les escribo porque me estoy volviendo un poco loco con el tema de las sesiones. He leido el post que hay en el foro y todavia no he conseguido lo que quiero. Mi proposito es que todo usuario identificado en mi web reciba una cookie, para simular el tema de sesiones. Mi script:

#!/usr/bin/perl -w

use CGI qw/:standard/;
use CGI::Session;
use DBI;

print "Content-type: text/html\n\n";

#recibo los parametros.
my $alias = param('txtUsuario');
my $contrasena = param('txtContrasena');

#Validacion del usuario.
......

#Creo la sesion
$sesion = new CGI::Session(undef, undef, {Directory=>'/tmp'});

#Personalizo la sesion.
$sesion->param('Alias',$alias);

#Le dejo 10 minutos de sesion.
$sesion->expires("+10m");

#Se supone que este metodo crea la cookie, pero miro en el navegador y no es asi.
$nombre = $sesion->header();

Parece sencillo, pero no se crea la cookie. Pasa algo? En las instrucciones de CPAN pone que asi se crea la cookie y he visto por otro lado que la comprobacion de la cookie de sesion a partir de ese momento es transparente.

Ayuda please que como veis estoy un poquito pez en este tema.

Gracias de antemano,, muchas gracias.

NotaPublicado: 2005-06-20 13:16 @595
por kidd
Hola:

En el manual dice:


header()
header() is simply a replacement for CGI.pm's header() method. Without this method, you usually need to create a CGI::Cookie object and send it as part of the HTTP header:

$cookie = new CGI::Cookie(-name=>'CGISESSID', -value=>$session->id);
print $cgi->header(-cookie=>$cookie);
You can minimize the above into:

$session->header()
It will retrieve the name of the session cookie from $CGI::Session::NAME variable, which can also be accessed via CGI::Session->name() method. If you want to use a different name for your session cookie, do something like following before creating session object:

CGI::Session->name("MY_SID");
$session = new CGI::Session(undef, $cgi, \%attrs);
Now, $session->header() uses "MY_SID" as a name for the session cookie.


Entonces creo que te falta hacer el print:

Código: Seleccionar todo
print $session->header();



SALUDOS

Me di cuenta nada mas publicar el post

NotaPublicado: 2005-06-20 18:11 @799
por rorris
Si, era eso. Me di cuenta nada mas hacer la pregunta. A parte, hacia otra cosilla mal, pero ya esta arreglado. De todas formas MUCHAS GRACIAS, KIDD. GRACIAS DE VERDAD.

Un saludo.