[cgiapp] Problem with Flash, Session & persistent environment
identified
Richard Jones
ra.jones at dpw.clara.co.uk
Fri Nov 21 15:17:45 EST 2008
Bradley C Bailey wrote:
> Richard,
>
>> If Ron can make a working demo with CAP::Flash :) ..
>>
>> Starting out with the bare minimum (no login, no authentication,
>> direct use of $dbh, etc), I get the flash messages displaying under
>> mod_cgi, but not under CA::Server unless I session->flush in teardown.
>>
>> use base qw(Titanium);
>> use CGI::Application::Plugin::TT;
>> use CGI::Application::Plugin::Flash;
>>
>> Startmode() sets some flash messages then re-directs to function1() to
>> display the template.
>>
>> Removing Titanium and substituting CGI::Application as the superclass
>> was the key to getting the flash messages displayed under CA::Server
>> without needing session->flush. Yay!!
>
> I am able to reproduce this as well. I had my test application working,
> and I switched it to Titanium instead of CGI::Application and my
> sessions stopped working automatically flushing (not going out of scope).
>
>
>> Then, bringing back all the plugins that Titanium uses one by one
>> until it broke again, CAP::ErrorPage is the one responsible.
>> Presumably there is something in there that causes the session to be
>> retained in a persistent env?
>>
>> It's possible that one of the Titanium mods is also causing the
>> failure of AutoRunmode to work under mod_perl for me, but that's
>> another issue.
>
> I can confirm CAP::ErrorPage is what is causing this behavior. Though I
> couldn't reproduce my problems with CAP::DebugScreen.
Well it's possible CAP::DebugScreen was conflicting with my own
$SIG{__DIE__} handler in my Dispatch class, which itself was causing
some issues when used under mod_perl, but as I wasn't really using
DebugScreen I'm not too sad to miss it.
--
Richard Jones
More information about the cgiapp
mailing list