<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Manuel, no se cual es el problema, pero te puedo recomendar mover la rutina IniciaSesion al run-mode especial llamado cgiapp_prerun. De esta forma se ejecuta siempre independientemente del runmode seleccionado. A mi Apache::Session::mysql me funciona bien, pero no he usado CGI::FormBuilder.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>Saludos,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Gustavo Delfino</DIV><DIV><BR class="khtml-block-placeholder"><DIV><DIV><DIV><DIV>On Oct 26, 2005, at 7:45 AM, Manuel Telleria wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite">                                                                        Estimados todos,<BR> <BR> Tengo el siguiente problema,<BR> <BR> Estoy usando CGI::FormBuilder y  Apache::Session::Postgres.<BR> <BR> El programa comienza con el runmode = "comienzo" que es el run mode por omision, lo primero que se ejecuta en este run mode, es la función IniciaSesion, la cual me genera una sesión con el módulo Apache::Sesion::Postgres, ahora bien cuando ejecuto el programa con el bloque de codigo comentado (ver programa)) todo esta bien en cuanto a la generación de la sesion es decir me retorna el Dumper(%my_session) y verifico que esta sesión existe en la base de datos "sessions", me explico, si hago un select sobre la tabla donde Apache guarda las sesiones existe y la puedo ver. El problema esta cuando descomento el bloque de código al que me refiero, que no es mas que el llamado al new del CGI::FormBuilder.<BR> <BR> Al hacer la ejecución del programa con el bloque de código descomentado a pesar de que me muestra un arreglo de sesión con el Dumper, cuando trato de verificar la existencia de esta sesión en la base de datos "sessions" esta no existe, la verdad es que no logro entender que sucede , que tiene que ver el llamado a CGI::FormBuilder sobre la generación de la sesión si se supone que la generó ya que el arreglo %my_session tiene valores.<BR> <BR> Otro dato cuando reviso el archivo error.log de apache no encuentro ningun error que haga referencia a problemas con la conexion o con el insert en la tabla de sessions.<BR> <BR> Datos tecnicos<BR>   SO Debian sarge<BR>   Apache2 con modperl2<BR>   todos los módulos fueron instalados con apt-get install<BR> <BR> <BR> A continuación el código. Y Gracias de antemano al que pueda ayudarme.<BR> <BR> manuel.pl<BR> ===================================<BR> #!/usr/bin/perl -w -I ./ctrl<BR> <BR>   use CGI::Carp qw(fatalsToBrowser);<BR>   use manuel;<BR>   use CGI '-debug';<BR>   my $q = new CGI;<BR>   my $obj = manuel-&gt;new (<BR>                                           TMPL_PATH =&gt; '/cgi-bin/inicio_sesion/tmpl/',<BR>                                           PARAMS =&gt; {<BR>                                                                   titulo =&gt; "Inicio de Sesion",<BR>                                                                   accion =&gt; "manuel.pl"<BR>                                                                } );<BR>   $obj-&gt;run;<BR> <BR> <A href="http://manuel.pm">manuel.pm</A><BR> ===================================<BR> #! /usr/bin/perl -w -I .<BR> BEGIN {unshift @INC, "/usr/lib/cgi-bin/model/"; };<BR> <BR>   package manuel;<BR> <BR>   use strict;<BR>   use warnings;<BR>   use base 'CGI::Application';<BR>   use CGI::FormBuilder;<BR>   use Data::Dumper;<BR>   use CGI::Cookie;<BR>   use Error;<BR>   use Apache::Session::Postgres;<BR>   my %my_session;<BR>   my $sMensaje = '';<BR> <BR> ############################################################################ ###<BR> # Función setup : esta función es la que controla el flujo del programa, depen-<BR> # diendo del rm (run mode).<BR> ############################################################################ ###<BR> <BR> sub setup {<BR>     my $self = shift;<BR>     $self-&gt;start_mode('comienzo');<BR>     $self-&gt;run_modes(<BR>                                  comienzo =&gt; 'comienzo',<BR>                                 );<BR>     $self-&gt;mode_param('rm');<BR> }<BR> <BR> ############################################################################ ###<BR> # Función comienzo : esta función es la que da inicio al programa. Es la que se<BR> # ejecuta en caso de que no se haya escogido ningun rm (run mode).<BR> ############################################################################ ###<BR> sub comienzo {<BR>     my $self    = shift;<BR>     my $q       = $self-&gt;query;<BR> <BR>     &amp;IniciaSesion($self);<BR> <BR> ****BLOQUE QUE SE COMENTA PARA QUE FUNCIONE<BR> <BR> # my $form = CGI::FormBuilder-&gt;new( method   =&gt; 'post',<BR> #                                                             name =&gt; 'myforma',<BR> #                                                             sticky =&gt; 0,<BR> #                                                             enctype =&gt; 'multipart/form-data',<BR> #                                                             selectnum =&gt; 1,<BR> #                                                             fields =&gt; [qw/scorreo scontrasena serrortxt SubmitBtn nintentos/],<BR> #                                                             validate =&gt; { scorreo =&gt; 'EMAIL',<BR> #                                                                                    scontrasena =&gt; 'VALUE',<BR> #                                                                                 },<BR> #                                                             messages =&gt; '/usr/lib/cgi-bin/lib/mensajes.es',<BR> #                                                             template =&gt; '/usr/lib/cgi-bin/tmpl/sesion.tmpl',<BR> #             );<BR> <BR> *******FIN BLOQUE<BR> <BR> <BR>     return Dumper(%my_session);   ----Linea que retorna el arreglo de la sesion solo para debuger.<BR> <BR>     programa continua ....<BR> <BR>     return $form-&gt;render;<BR> <BR> }<BR> <BR> ############################################################################ ###<BR> # Función cIniciaSesion :<BR> ############################################################################ ###<BR> sub IniciaSesion{<BR>     my $self = shift;<BR>     my $q = $self-&gt;query();<BR>     my $dsn = "dbi:Pg:dbname='sessions';host='postgres.desarrollo'";<BR> <BR>   my $id = ($q-&gt;param('_sessionid')) ? $q-&gt;param('_sessionid') : 0;<BR> <BR>     eval{<BR>            tie %my_session, 'Apache::Session::Postgres', $id, {DataSource =&gt; $dsn,<BR>                                                                                             UserName =&gt; 'usuario',<BR>                                                                                             Password =&gt; '123456',<BR>                                                                                            Commit =&gt; 1 };<BR>     };<BR> <BR>     if ($@){<BR>         $sMensaje = Error::getError(10);<BR>     }<BR> }<BR> <BR> 1;<DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">caracas-pm mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:caracas-pm@pm.org">caracas-pm@pm.org</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://mail.pm.org/mailman/listinfo/caracas-pm">http://mail.pm.org/mailman/listinfo/caracas-pm</A></DIV> </BLOCKQUOTE></DIV><BR></DIV></DIV></DIV></BODY></HTML>