in reply to CGI::Application, the cgiapp_prerun mode, and CGI object interaction
Your question is not very clear, and I think it would help a lot if you showed some code.
That having been said, when setting a parameter using CGI.pm, you need to know that CGI.pm does not override existing parameters unless you tell it to. So if 'whatever' is already a parameter, and you want CGI.pm to change it, you need to pass it the -override => 1 option to your call to param.
The same thing shouldn't be happening when using the CGI::Application param method (which has absolutely no relation to the CGI.pm param method). So since you are not seeing the parameter you set in your runmode, then I have to think it was a coding mistake on your part, or you are expecting this info to stay persistent across multiple browser requests. Since you are taking about 'previous page' and 'next page', I am guessing that your problem is with persistence.
The first thing I would check is to make sure that your cgiapp_prerun is actually being executed during the request. Have you put a print statement in there to confirm that it is running?
Failing that, try using the CGI::Application::Plugin::Session plugin which will give you a session that is persistent across requests to see if that solves your problem
use CGI::Application::Plugin::Session; sub cgiapp_prerun { my $self = shift; $self->session->param(whatever => 123); } sub my_runmode { my $self = shift; my $whatever = $self->session->param('whatever'); }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: CGI::Application, the cgiapp_prerun mode, and CGI object interaction
by geektron (Curate) on Oct 17, 2005 at 01:20 UTC | |
by cees (Curate) on Oct 17, 2005 at 01:58 UTC | |
by geektron (Curate) on Oct 17, 2005 at 05:39 UTC |