• Publicidad

Sesiones

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Sesiones

Notapor seafree » 2012-09-10 15:22 @682

Hola, explorer.

He intentado usar las sesiones pero pierdo la autenticación.

Dibujo la forma para solicitar el registro, autentico y, excelente, pero vuelvo a seleccionar la opción para registrar y vuelve a solicitar el registro.

El script lo inicializo de la siguiente manera:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use strict;
  2. use warnings;
  3. use diagnostics;
  4. use DBI;
  5. use Switch;
  6. use CGI::Session;
  7. CGI::Session->name("SID");
  8. use CGI ':standard';
  9. use CGI::Carp qw'fatalsToBrowser warningsToBrowser';
  10. ###---CREAMOS EL OBJETO CGI::Session---###
  11. my $cgi = CGI->new();
  12. my $session = CGI::Session->new( "driver:File", $cgi, { 'Directory' => '/tmp/sessions' } ) or die CGI::Session->errstr;
  13. ###---ENVIAMOS LA COOKIE DE SESION AL USUARIO---###
  14. print $session->header();
  15. ###---GUARDAMOS EL PERFIL DEL USUARIO---###
  16. my $perfil;
  17. my $cookie = $cgi->cookie( -name => $session->name, -value => $session->id );
  18. print $cgi->header( -cookie => $cookie );
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Tomé de base el ejemplo que publicaron ustedes en el portal de PerlenEspanol, pero sigo sin obtener los resultados requeridos. ¿Qué sucede? Por que si se están creando los archivos de la sesión en /tmp/sessions'.

Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Sesiones

Notapor explorer » 2012-09-10 15:50 @701

No sé de dónde estás tomando el ejemplo, pero veo que estás enviado los header() dos veces, por lo que no es correcto lo que estás escribiendo.

Para enviar los header(), solo necesitas la línea

print $session->header();

De hecho, el objeto CGI::Session hereda las funciones de CGI, por lo que una vez que creas el objeto CGI::Session, y creas el objeto CGI::Session, ya no necesitas acceder al objeto CGI. En cambio, sí que es necesario tener un objeto CGI para usar las funciones generadoras de código HTML, por ejemplo.

Dices que vuelve a pedir el registro, pero no vemos esa parte del código.

¿Podrías reducir el código al mínimo, que reproduzca el error?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

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

cron