[cgiapp] Redirecting with CGI::App Problem (possibly mod_perl
related)
Brad Van Sickle
bvs7085 at gmail.com
Fri Jun 5 00:41:00 EDT 2009
Thanks for the quick response!
Unfortunatnly, if I use that method the rest of the script still
executes and the redirect headers seem to print after the <html></html>
tags
<html>
my templated html
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>200 OK</title>
</head><body>
<h1>OK</h1>
<p>The document has moved <a href="my_uri">here</a>.</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5
mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
PHP/5.2.8 mod_perl/2.0.4 Perl/v5.8.8 Server at xxx.xxx.xxx.49 Port
80</address>
</body></html>
Cees Hek wrote:
> Hi Brad,
>
> Try moving your code to the prerun stage, and look at the examples in
> CGI::Application::Plugin::Redirect. The first example in the docs is pretty
> much what you want:
>
> use CGI::Application::Plugin::Redirect;
> sub cgiapp_prerun {
> my $self = shift;
>
> if ( << not logged in >> ) {
> return $self->redirect('login.html');
> }
> }
>
> Cheers,
>
> Cees
>
> On Tue, May 5, 2009 at 2:25 PM, Brad Van Sickle <bvs7085 at gmail.com> wrote:
>
>
>> I'm running under mod_perl, not sure if that's relevant here or not... I
>> think it is because I've been able to get this working in a non-mod_perl
>> envrionment previously...
>>
>> I'm attempting to validate a user's session in my cgi::app script. If the
>> session cookie is not present, or the session is invalid, I want to redirect
>> the user to the login module to get authenticated. The "order of
>> operations" document has a nice example of how to do this from within init,
>> but printing out the redirect headers and than issuing a die() to prevent
>> the rest of the operations from executing.
>>
>> This does not work for me. As soon as that die executes my script fails
>> with the error:
>>
>> Error executing class callback in init stage: Died at blah blah blah
>> my code: if (!$ValidSession)
>> {
>> use CGI::Application::Plugin::Redirect;
>> $self->teardown();
>> print $self->redirect($FailureLocation);
>> die;
>> }
>>
>> I've read every bit of documentation I can find and tried everything I can
>> think of... I could really use some suggestions at this point.
>> Thanks!
>>
>>
>>
>>
>>
>>
>>
>> ##### CGI::Application community mailing list ################
>> ## ##
>> ## To unsubscribe, or change your message delivery options, ##
>> ## visit: http://lists.openlib.org/mailman/listinfo/cgiapp ##
>> ## ##
>> ## Web archive: http://lists.openlib.org/pipermail/cgiapp/ ##
>> ## Wiki: http://cgiapp.erlbaum.net/ ##
>> ## ##
>> ################################################################
>>
>>
>>
>
> ##### CGI::Application community mailing list ################
> ## ##
> ## To unsubscribe, or change your message delivery options, ##
> ## visit: http://lists.openlib.org/mailman/listinfo/cgiapp ##
> ## ##
> ## Web archive: http://lists.openlib.org/pipermail/cgiapp/ ##
> ## Wiki: http://cgiapp.erlbaum.net/ ##
> ## ##
> ################################################################
>
>
More information about the cgiapp
mailing list