• Publicidad

CGI::Session problema con is_empty

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

CGI::Session problema con is_empty

Notapor paolo » 2009-05-09 17:15 @760

¡Hola!,

Estoy intentando hacer un simple sistema de acceso para usuarios, estoy trabajando con el módulo CGI::Session del cual he leído documentación pero no logro entender mi problema.

Manejo dos scripts, uno para acceder y otro para ver el contenido.

Si los datos de acceso son correctos (usuario y contraseña) el script 1º me crea una sesión

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# script1.pl

# Si nombre de usuario y contraseña son correctas entonces crea la sesión

$session = new CGI::Session("driver:File", undef, {Directory => '/ruta/a/directorio/con/permisos/de/escritura'});

# Si no, entonces muestra el formulario de acceso
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


En el otro script uso load() para verificar que la sesión no haya expirado y/o que no esté vacía

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# script2.pl

  $session = CGI::Session->load();
 
  if($session->is_expired)  {
    # La sesión expiró
  }elsif($session->is_empty){
   # El usuario no se ha logeado
  }else{
   # Muestra el contenido
  }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El problema radica en que no importa si el nombre de usuario y la contraseña sean correctas, ni tampoco que la sesión se genere en el directorio correctamente, al entrar al segundo script me dice que el usuario no se ha logeado ("is_empty").

¿Alguien tiene alguna pista de lo que pudiera estar pasando?.

Gracias de antemano.

¡¡ saludos !!
Última edición por paolo el 2009-05-09 17:23 @766, editado 1 vez en total
paolo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2008-08-10 08:26 @393

Publicidad

Notapor paolo » 2009-05-09 17:22 @765

¡Hola!

Acabo de hacer una prueba y el resultado, a pesar de que funcionó, no hizo más que confundirme aún más :?

Noté que si cambio ésta línea:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$session = new CGI::Session("driver:File", undef, {Directory => '/ruta/a/directorio/con/permisos/de/escritura'});
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

por ésta otra línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$session = new CGI::Session();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La validación en el script2.pl (el que verifica que el usuario se haya logeado) funciona correctamente, es decir, me muestra el contenido.

Tengo entendido que en new(), si no le paso parámetros toma por defecto el driver, y el directorio donde guardaría las sesiones sería /tmp.

En mi primer post, el directorio donde indico que se guarden las sesiones tiene permisos de escritura y se crean correctamente las sesiones pero no me valida el acceso.

¿Alguien tiene una pista de lo que pudiera estar pasando?, ¿no puedo guardar las sesiones en un directorio diferente a /tmp?.

Gracias de antemano.

¡¡ saludos !!
paolo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2008-08-10 08:26 @393

Notapor paolo » 2009-05-09 17:36 @775

¡Hola nuevamente!,

Creo que yo solo me respondí al plantear el segundo post.

En mi primer post en "script1.pl" está planteando una ruta para guardar las sesiones lo cual hacía correctamente, mientras que en "script2.pl", al usar load() no funcionaba porque al no especificar una ruta entonces estaba intentando buscar en el directorio "/tmp".

En mi segundo post, al editar en "script1.pl" la línea donde creo la sesión estaba omitiendo parámetros, lo cual hacía que por defecto la sesión se creara en "/tmp", de ahí que "script2.pl" encontrara que la sesión no estaba vacía porque ambas buscaban en el mismo directorio.

Bueno, ésto es a la conclusión que llego yo, cabe mencionar que ayer por la noche fue mi primer contacto "formal" con el módulo CGI::Session, han sido muchas horas de leer así que ya no sé qué estoy haciendo jaja :lol:

De todas formas agradecería mucho cualquier consejo que me pudieran pasar y corregir en caso de que mi conclusión no sea la correcta.

Buen fin de semana a todos.

¡¡ saludos !!
paolo
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2008-08-10 08:26 @393

Notapor explorer » 2009-05-10 13:24 @600

Recuerda que existe también CGI::Session::Tutorial, por si necesitas ver las cosas de forma más directa que las que trae el CGI::Session.
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 Intermedio

¿Quién está conectado?

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