• Publicidad

Sesiones otra vez.

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Sesiones otra vez.

Notapor rorris » 2005-06-20 09:37 @442

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.
rorris
Perlero nuevo
Perlero nuevo
 
Mensajes: 21
Registrado: 2005-06-14 18:01 @792

Publicidad

Notapor kidd » 2005-06-20 13:16 @595

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
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Me di cuenta nada mas publicar el post

Notapor rorris » 2005-06-20 18:11 @799

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.
rorris
Perlero nuevo
Perlero nuevo
 
Mensajes: 21
Registrado: 2005-06-14 18:01 @792


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados