Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

CGI::Session

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos
Mensaje Sab Abr 28, 2007 5:42 pm
Lor
Perlero Nuevo
Perlero Nuevo
Registrado: 28 Abr 2005
Mensajes: 99
Ubicación: Argentina, Santa FE
CGI::Session Responder citando

Agradecería muchísimo si me pudiesen ayudar en lo siguiente:

Quiero trabajar con sesiones CGI::Session almacenando todo en una tabla "sessions" de Mysql.

Los módulos que tengo instalados son CGI::Session , CGI::Session::ODBC y no tengo CGI::Session::MYSQL porque no está disponible para Windows versión Perl 5.8.3.

Preguntas:
1) La tabla session creada según especificaciones que el módulo indica debe estar en una base de datos "sessions" o puede estar con otras tablas.

2) Intento hacer:
Perl:
my $session = new CGI::Session("driver:mysql", undef, { Handle => $dbh});
my $s= $session->id();
print " Identificador de session:   $s ";
y no pasa nada. No puedo detectar el error.

3) si esto funcionara, una vez que comienzo a guardar datos de la sesión en la tabla, ¿dónde los guarda? ¿en el campo a_session?

¿Me podrían ayudar cómo lograr esta implementación?

Muchísimas gracias. Very Happy
Mensaje Sab Abr 28, 2007 7:08 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
Responder citando

Yo no he probado ninguno de los módulos que comentas, pero voy a intentar darte algunas pistas.

* Intenta usar siempre la versión más moderna de Perl. Ahora estamos en la 5.8.8.
* La documentación es tu amiga. Dice CGI::Session que CGI::Session::MySQL necesita de los módulos DBI y DBD::mysql.
* Si no pone que la tabla debe estar en una base de datos determinada es que esa tabla debe residir en la base de datos abierta y referenciada por el handle $dbh (en el ejemplo), por lo que ANTES de iniciar la sesión ya se ha producido la conexión con la base de datos.
* Si se produce algún error en alguna llamada a algún método, es muy posible que obtengas algún valor de retorno que indique qué fallo ocurrió, a veces en el valor que devuelve el método y otras veces en la variable especial $!. Pinta las dos. Consulta el manual si indica qué valores devuelven en caso de fallo.
* En cuanto a dónde almacena la información, toda la documentación de CGI::Session te orienta a que eso no te importa. Quiero decir que una vez que ejecutas la línea del new(), el tratamiento de las sesiones es idéntica independientemente si es en un fichero de texto o en una MySQL, por lo que los detalles te quedan ocultados y tú sólo te preocupas de recuperar y almacenar sesiones. De todas formas, siempre puedes recuperar la información de forma directa... estamos hablando de Perl.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group