Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: cgi page not showing

by little (Curate)
on Jul 01, 2002 at 07:24 UTC ( #178485=note: print w/replies, xml ) Need Help??

in reply to cgi page not showing

# get the User, or go to login page my $user = new GWAK::User() or GWAK::User->redirect_to_login(GWAK::User->errstr);
seems to contain your problem. So what are you really trying to attempt here? check if the user exists? if the user is valid? logged in? Well, if thats fine, but if not, how could there be an User object that supports this method?

Have a nice day
All decision is left to your taste


While your code is not a production release you might want to add the line
use CGI::Carp qw(fatalsToBrowser);
which would bring errors occuring due to the usage of warnings and strict (you do use those, don't you?) directly to your browser. Using diagnostics might give even more detailed reasons if an error occures :-)

Replies are listed 'Best First'.
Re: Re: cgi page not showing
by jeff280679 (Initiate) on Jul 01, 2002 at 08:54 UTC
    I do have use CGI::Carp qw(fatalsToBrowser) and am using strict (of course:). But I get nothing.

    What *should* happen is the when a new GWAK::User is created it authenticates using cookies, then fills a hash with user data and returns the reference. If it fails (bad auth, cannot access database..) it should call GWAK::User->redirect_to_login which is a class method which should just print a page which redirects to the login page.

    The thing is, the call to new GWAK::User doesn't fail (it works if I remove the GWAK::User->redirect_to_login) but all that is sent to the browser is the HTTP headers. No error messages anywhere. It's like having the GWAK::User->redirect_to_login creates a black hole that the script does not come out of.

      Well, as I said, you cannot call an object method if the object does not exist and its values aren't set, so simply try this instead :-)
      my $cgi = new CGI; # get the User my $user = new GWAK::User(); # did it work ? if (!$user) { # if not go to login page print $cgi->redirect("insert your login_url"); } else { # or proceed print $cgi->header(); ... }
      caedes is right, since you once write a header you cannot write a second one, but in my experience a mistakenly written second header would then just occur as plain text, but that might differ depending on the default mime-type setting of the webserver.

      Have a nice day
      All decision is left to your taste
        He doesn't call the object method $user->redirect_to_login, but the subroutine GWAK::User->redirect_to_login which should work even when the creation of the $user object failed.

        Aside from this, it would be very helpful if the relevant parts of the GWAK module were provided here.

        ---- kurt

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://178485]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (2)
As of 2018-05-27 16:24 GMT
Find Nodes?
    Voting Booth?