in reply to Cookie not getting stores

You don't appear to be sending the cookie you just created along in your header, so the browser never gets it.

I think that instead of just printing header(), you should be printing something along the lines of:

print header(-cookie=>$cookiename);

HTH

Replies are listed 'Best First'.
Re: Re: Cookie not getting stores
by Anonymous Monk on Dec 25, 2003 at 13:08 UTC
    Thank you bart but that still didn't solve the problem. Is there something else I'm forgetting to do?

    Thanks.

    I used: print header(-cookie=>$cookiename), start_html();

      Yes, you should probably also read the cookie as well. :) I don't see where you assign to %cookie anywhere before you check it for pass.

        I'm sorry, I don't understand what you mean. I thought I was reading the cookie while I was checking for pass.
        This is in reply to your newest post, I can't seem to reply to it as it's below my current viewable thread or something.

        I tried setting the cookie as another scalar like you requested, but it hasn't done anything. Maybe I am confused as to what I'm supposed to be doing with it. I set the cookie as another scalar, but then am I supposed to compare it within the password verification section (if ( $adminpass eq $adminpassword ) {)?

        I'm sorry, I'm just really clueless and I've never understood cookies or how they work or anything..and I HAVE read tutorials and the CGI docs on them. This is just one concept I don't think I'll ever be able to understand :(

        My current code:
        my $adminpassword = "test"; my %cookie; my $pass = cookie('cookie'); require SDBM_File; my %mail; my $person = url_param('lookup'); if ( !exists $cookie{'pass'} ) { if ( param() ) { my $adminpass = param('admin'); if ( $adminpass eq $adminpassword ) { my $cookiename = cookie( -name => 'cookie', -value => 'loggedin', -path => '/', -expires => '+3y' ); print header, start_html(); # print rest of page here print "you are logged in"; ##### database value lookup if ($person) { if (exists $mail{$person}) { my $lookup_data = $mail{$person}; print "$lookup_data"; } else { print "<h3><font color=red>Error:</font></h3> This user doesn't exist" +; } } else{ foreach (keys %snailmail) { print <<"END"; <a href="www.myscript.com/login.pl?lookup=$_" target="_new">$_</a><br> END } } } else { print header, start_html(); print "Incorrect password, please click back and try again +"; exit; } } else { print header, start_html(); print start_form(), table( Tr( td("Admin Password: "), td( textfield( -name => 'admin', -size => 10 ) ) ), Tr( td(), td(submit) ), ), end_form(), hr(); } }