http://qs321.pair.com?node_id=165734

newrisedesigns has asked for the wisdom of the Perl Monks concerning the following question:

I have a slight dilemma...

I'm working on a "Back" script that uses the information stored in cookies to reload a CGI page. The information (username, password, and project file) are stored in three different cookies. The program reads these cookies, then redirects the user to the CGI page. If one of the cookies is empty, it has the user manually sign back in by sending him or her to a default page.

This code works, but only for Netscape 6. IE 5 and Netscape 4.75 get 500 errors.

Here's the code...

use vars qw( $q $redirect ); use CGI; $q = new CGI; checkCookies($q); print $q->redirect(-url=>"http://www.mysite.com/index.pl$redirect");

and checkCookies looks like:

sub checkCookies { my $q = shift; my $client = $q->cookie("cuser") || ''; my $password = $q->cookie("cpswd") || ''; my $project = $q->cookie("cproj") || ''; if(($client ne '') && ($password ne '') && ($project ne '')){ return "?action=display&uid=$client&pass=$password&ppa=$project"; } else{ return ''; } }

Is this something I've misprogrammed, or is this merely a browser bug?

Also, does anyone know of a way I can save state while a person is outside of a CGI page?

For now, I'll have users open new windows to enter the unCGI area, and just close them instead of attempting to keep them entirely in one window.

Thanks in advance...

John J Reiser
newrisedesigns.com