CGI::Application::Plugin::Session
Publicado: 2013-02-06 06:48 @325
Estoy queriendo utilizar CGI::APPLICATION::PLUGIN::SESSION con MySQL, pero no funciona. No guarda en la sesión las variables que quiero guardar.
Al ejecutarse el cgi_init la sesión se crea bien, abro la tabla y veo el registro con las variables inicializadas con el valor por defecto: exploración, etc..
Pero cuando, luego, desde otro lugar quiero guardar o recuperar variables no hace nada; tampoco tira error.
Hasta aquí, veo el registro en la tabla sessions de MySQL.
En config.pl tengo configurado, para sesiones lo siguiente:
Luego trato de guardar una variable por ejemplo en el método login
Luego trato de recuperarlas en otro método
Creo que es problema del Plugin y MySQL. ¿Qué puedo hacer? ¿Alguien se ha implementado lo mismo?
¡¡¡Gracias!!!
Al ejecutarse el cgi_init la sesión se crea bien, abro la tabla y veo el registro con las variables inicializadas con el valor por defecto: exploración, etc..
Pero cuando, luego, desde otro lugar quiero guardar o recuperar variables no hace nada; tampoco tira error.
- sub cgiapp_init {
- my $self = shift;
- my $q = $self->query();
- # Leo el archivo de configuración
- $self->cfg_file('../../MySitePrivate/config/config.pl');
- # Manejador base de datos
- $self->dbh_config(
- $self->cfg('db_dsn'),
- $self->cfg('db_user'),
- $self->cfg('db_pw')
- ) or die "error al conectar";
- # Sesiones
- $self->session_config(
- CGI_SESSION_OPTIONS => [
- $self->cfg('cgi_session_dsn'),
- $self->query,
- {Handle=>$self->dbh}
- ],
- DEFAULT_EXPIRY => '+30m', # ("~logged-in", "30w") , no funciona COOKIE_PARAMS => {
- -expires => '+30m',
- -path => $self->cfg('cookie_path')
- }
- );
- .....
- ......
Hasta aquí, veo el registro en la tabla sessions de MySQL.
En config.pl tengo configurado, para sesiones lo siguiente:
- #!c:/perl/bin/perl -w
- use strict;
- my %CFG;
- $CFG{app_name} = "Intranet";
- $CFG{site_url} = "http://localhost/cgi-bin/MySite";
- $CFG{db_dsn} = "dbi:mysql:intranet";
- $CFG{db_user} = "root";
- $CFG{db_pw} = "admin";
- $CFG{cgi_session_dsn} = "driver:mysql;serializer:Storable";
- $CFG{cookie_path} = '/';
- ....
- ....
Luego trato de guardar una variable por ejemplo en el método login
- sub login{
- my $self = shift;
- my $user = $self->authen->username;
- my $url = $self->query->url;
- my $q = $self->query();
- my %e;
- my $dbh = $self->dbh;
- $self->session->param(usu_id => 4);
- $self->session->param(usu_nombre => 'gimena');
- $self->session->param(usu_apellido => 'apellido');
Luego trato de recuperarlas en otro método
- sub conformar_menu {
- my $self = shift;
- my $q = $self->query();
- my $dbh = $self->dbh;
- my $usu_id = $self->session->param('usu_id');
- .....
Creo que es problema del Plugin y MySQL. ¿Qué puedo hacer? ¿Alguien se ha implementado lo mismo?
¡¡¡Gracias!!!