Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: CGI::App session params losing values between redirects

by bradcathey (Prior)
on Feb 14, 2009 at 18:16 UTC ( [id://743848]=note: print w/replies, xml ) Need Help??


in reply to Re: CGI::App session params losing values between redirects
in thread CGI::App session params losing values between redirects

Thank you samtregar

1. Is the cookie being sent back to the server by the client?

Yes it is.

2. Is the session setup code in your super class running?

Here's the entire Super class. I don't believe there could be anything in another module that would be overwriting it (there's nothing that resets the session cookie--it's all done in Super):

package Super; use warnings; use strict; use base 'CGI::Application'; use CGI::Application::Plugin::Redirect; use CGI::Application::Plugin::Session; use HTML::Template; sub cgiapp_init { my $self = shift; (my $http_host = $ENV{'HTTP_HOST'}) =~ s/(www.)([a-zA-Z0-9\-\.]+)/ +$2/; #--- Sessions & Cookies $self->session_config( COOKIE_PARAMS => { -name => 'MY_SESSID', -expires => '+8h', -path => '/', -domain => ".".$http_hos +t, }, SEND_COOKIE => 1, ); } 1;

—Brad
"The important work of moving the world forward does not wait to be done by perfect men." George Eliot

Replies are listed 'Best First'.
Re^3: CGI::App session params losing values between redirects
by samtregar (Abbot) on Feb 14, 2009 at 21:02 UTC
    What's up with the -domain stuff? I think that could be your problem. Try removing it or replacing it with something static. Also, check that the clock on your webserver isn't more than 8h off (I've seen it happen!) since you're setting a pretty short expiration.

    Are you sure you don't have a cgiapp_init() defined in one of your sub-classes? Maybe add a warn() in the super class one and see that it actually prints when you run both sub-classes.

    -sam

      Thanks Sam.

      Two questions:

      1. What would something "static" look like for -domain or should I just kill the attribute?
      2. Dumb question of the day: so in any given instance, I can only have one cgiapp_init? I.e., one in my working module and one in the Super will overwrite each other? Makes perfect sense. Unfortunately, that's not what's happening here. But good to know. Duh!

      —Brad
      "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
        1. ".foo.com" - static means a non-dynamic value, something fixed.

        2. You can have multiple, but have to call up the tree from your sub-class: $self->SUPER::cgiapp_init(). This is how inheritence works in Perl - if you override a base class method you have the option of calling it with SUPER::, or not. Often you need to put some thought into the right place to call it - before your sub-class does its thing or after. If they're both modifying the object's state this can be critical to getting it to do what you want.

        -sam

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-24 05:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found