Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: ie with cgi::session not showing same session id which it was set and firefox doesn't show at all

by Anonymous Monk
on Aug 21, 2013 at 16:21 UTC ( #1050386=note: print w/ replies, xml ) Need Help??


in reply to ie with cgi::session not showing same session id which it was set and firefox doesn't show at all

To elaborate on Re: ie with cgi::session not showing same session id which it was set and firefox doesn't show at all

I used firefox and your programs (after making each compile).
I observed session being created, browser getting branded,
session being retrieved,
session (and cookie) being deleted,
then no session being retrieved,
and REPEAT

it all worked , no problems, everything as expected


Comment on Re: ie with cgi::session not showing same session id which it was set and firefox doesn't show at all
Re^2: ie with cgi::session not showing same session id which it was set and firefox doesn't show at all
by msinfo (Sexton) on Aug 21, 2013 at 22:28 UTC
    Thanks for being with me. Am i correct that you are saying, all above code worked fine at your system? How come I am getting two different results. 1. IE9 and Firefox showed started session id, but when clicked on check.cgi IE showed different session id, and Firefox showed none. 2. Both browsers returned, session->is_empty as true. when check.cgi ran. Could you please, share your compiled code, which shows results written on webpage. About debugging, I went through links mentioned on above post. Brian d foy's comments were useful. But I am confused because when I run scripts from command line mode, it doesn't shows any errors. (returns syntax ok) I am trying to retreive session info from cookie and param but no luck yet.

      Am i correct that you are saying

      I am saying you should employ the Dumpering debugging strategy cause I don't see no Dumpering output in your response

      Dumpering is debugging step number one

      Dumper your CGI object, Dumper your session object, Dumper whatever else thats important

      Basic debugging checklist item 4 ( Dumper )

      Then realize the problem, or show me so I can realize the problem for you

      print $query->escapeHTML( scalar Dumper( $query, $session ) )

      Could you please ...

      No thanks ; programming is a process, the only way to get a handle on it is to do these steps yourself;

      What you posted doesn't compile, which means you didn't run what you posted to figure out how this works -- that it is working --

      Which means you're probably trying to debug this problem in your larger code

      That is tough/hard way to go about it; you can read more about this scenario in Re^3: CGI::Session "cache" issue

        Thanks for Data::Dumper, info.

        After reading CGI::Session twice, dumper data, started to give clues, and using debugging i could solve my session management problem.

        But don't know why still, around 6 out of 10, scenarios fails completely in browser and command line mode. No existing session data is captured, or even when session is set to expire in 5 hours, it still creates new session

        $VAR1 = bless( { '_STATUS' => 1, '_OBJECTS' => {}, '_CLAIMED_ID' => un +def, '_DATA' => { '_SESSION_ID' => undef, '_SESSION_ATIME' => undef, +'_SESSION_REMOTE_ADDR' => '127.0.0.1', '_SESSION_CTIME' => undef }, ' +_QUERY' => bless( { '.parameters' => [], 'use_tempfile' => 1, '.chars +et' => 'ISO-8859-1', '.cookies' => undef, '.fieldnames' => {}, 'param +' => {}, 'escape' => 1 }, 'CGI' ), '_DRIVER_ARGS' => {}, '_DSN' => { +'serializer' => 'default', 'id' => 'md5', 'driver' => 'file' } }, 'CG +I::Session' ); Content-Type: text/html; charset=ISO-8859-1
        code of index.pl
        my $cgi = CGI->new; print $cgi->header(); my $session = CGI::Session->load() or die CGI::Session->errstr; if ( $session->is_expired ) { print "Your session timed out! Refresh the screen to start new + session!"; exit(0); } elsif ( $session->is_empty ) { $session = $session->new() or die $session->errstr; print $session->header(); print $session->id(); $session->expire("5h"); print "<a href='called.pl'>call</a></br></br>"; print Dumper($session); $session->flush(); } else { print "session found"; print "<a href='called.pl'>call</a></br></br>"; }
        and code of called page
        my $cgi = CGI->new; print $cgi->header(); my $session = CGI::Session->load() or die CGI::Session->errstr; print Dumper($session); print "<a href='index.pl'>index</a></br></br>"; $session->flush();

        So, I have to test further, would soon post update on this

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1050386]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (11)
As of 2014-12-29 15:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (193 votes), past polls