Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

session parameter lost

by *alexandre* (Novice)
on Jun 01, 2013 at 19:45 UTC ( #1036491=perlquestion: print w/ replies, xml ) Need Help??
*alexandre* has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I'm getting a new error while executing my code, I'm trying to initialize a session in my module LoadPage like this way
$session = new CGI::Session("driver:File", $session_id, {Directory=>"$ +session_dir"}); if ($session_id eq '' or $session_id eq '$SESSIONID') { $session_id = $session->id(); }
at the begining of the package then I've a login method still in this package
#sql code to retrieve user info and compare to the password if ($user_name && $user_password) { #put into session the username and different variables $session = new CGI::Session("driver:File", $session_id, {D +irectory=>"$session_dir"}); $session->expire('+2h'); local our $id = $session->id(); $session->param( "username", "$user_name"); $session->param( "level", "$level"); $session->param("ip", "$current_ip"); clearBasket($user_name);
if I print into the browser the value of the parameter stored in the session into this function it's work but when I load another page and call the method loadPersonal I lost the data
sub loadPersonalData { open (FILE, "<$dir/personal_data.html") or die "cannot open fi +le $dir/personal_data.html"; local our $selectionIndex = $articleClass->loadArticleSelection(); +; local our $selection = $articleClass->viewArticleSelectionByIndex( +);; local our $menu = $lp->loadMenu(); local our $content; $session = new CGI::Session("driver:File", $session_id, {Directory +=>"$session_dir"}); local our $username = $session->param('username'); print "Content-Type: text/html\n\n"; print "session id $session_id<br/>"; print "username $username<br/>"; print "session dir $session_dir<br/>";
It's print the $session_dir and $session_id but not the username any idea ? That's strange because the session id doesn't change between the loading of the other page

Comment on session parameter lost
Select or Download Code
Replies are listed 'Best First'.
Re: session parameter lost
by moritz (Cardinal) on Jun 01, 2013 at 20:18 UTC
    $session_id eq '$SESSIONID'

    What are you intending to do with that comparison? Single quotes don't interpolate, so you are comparing with the literal value $SESSIONID, not with the contents of a variable.

    Maybe some fearless monk can find other problems with your code that prevent it form working, but if I were to debug it, I'd need a self-contained script that I can run and reproduce the problem with. So, please provide that.

    With a bit of luck, the process of producing a minimal example even makes it obvious what's wrong.

    Oh, and finally: What's the reason for using local our all over the place? Lexical variables with my are fine, and avoid some hard-to-debug problems.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2015-08-01 01:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls