[cgiapp] Problem with prerun_mode call from builder_controllers

Ron Savage ron at savage.net.au
Thu Feb 11 18:03:04 EST 2010


Hi Erez

On Thu, 2010-02-11 at 17:21 +0200, Erez David wrote:
> Hi,
> 
> I am using the cgiapp_prerun in order to check some condition before moving
> run-mode (Each tab in the application is a run mode...). if the condition is
> match then I want to move to other run-mod.
> 
> The code is:
> sub cgiapp_prerun{
>     my $self = shift;
>     my $run_mode = shift;
> if ($run_mode eq 'run_mod2'){
> # Do some stuf...
> $self->prerun_mode('run_mod3');
> }
> }
> 
> and indeed the application goes to run_mod2 but than it stuck there... even
> when I go to other run modes (run_mod4, run_mod5 etc...) it is still stuck
> in run_mod 3.
> 
> 
> Is there something wrong I am doing here?

There must be something wrong, or you wouldn't be asking for help :-).

It suggests to me that the code (CGI form submission data) is sending
run_mod2 each time, and not what you think it is sending.

I suggest you put some logging code in that sub and report both the run
mode and the CGI form parameters.

In cgiapp_prerun I always call a sub which does this (among other
things):

# Log the CGI form parameters.

my($q) = $self -> query;

$self -> log(info => '');
$self -> log(info => $q -> url(-full => 1, -path => 1) );
$self -> log(info => "Param: $_: " . $q -> param($_) ) for $q -> param;

-- 
Ron Savage
ron at savage.net.au
http://savage.net.au/index.html




More information about the cgiapp mailing list