Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^4: CGI::Session "cache" issue

by Zhris (Initiate)
on May 23, 2011 at 21:37 UTC ( #906368=note: print w/ replies, xml ) Need Help??


in reply to Re^3: CGI::Session "cache" issue
in thread CGI::Session "cache" issue

Hello,

I have followed your advice, and I seem to have got it to work as I expect. This has though confused me entirely. How was it possible that I was even able to login, if I hadn't set the cookie on redirect. And why should it have made any difference whether I called Members.pl directly (displays logged in), compared to calling a php webpage that redirects to Members.pl (displays not logged in). Considering this, I believe my "confused" understanding was justified, unless there is some logical explanation. Just to clarify, I wasn't sure what aspect of my code may have caused the problem, therefore I wanted to provide everything that revolved around CGI::Session.

Here are the important snippets of my updated "login" code:

#create session my $session = new CGI::Session(); #create cookie my $session_cookie = new CGI::Cookie( -name => 'CGISESSID', -value => $session->id(), -domain => 'domain.com', ); #redirect print redirect( -cookie => [$session_cookie], -uri => $referer, );

Thanks for your advice and persistance,

Chris


Comment on Re^4: CGI::Session "cache" issue
Download Code
Re^5: CGI::Session "cache" issue
by Anonymous Monk on May 23, 2011 at 23:29 UTC
    This has though confused me entirely. How was it possible that I was even able to login, if I hadn't set the cookie on redirect. And why...

    Your confusion is understandable.

    Your code is very repetitive; there is zero abstraction.

    This makes maintenance (finding bugs ) very difficult, if not impossible.

    The code is in need of refactoring. What do I mean? See String Calculator TDD Kata done in Perl, its a ~14 minute video of an exercise in refactoring, live, as the programmer types it in.

    Then see a 7minut Introduction to Catalyst , for an easier approach to writing complex CGIs using http://www.catalystframework.org/

      Thank you for those links.

      I found the live coding video very interesting. It was kind of fun to predict what the guy was going to code next, and how it could be improved before he improved it. Although, I believe he could have improved it a little more.

      I have heard of Catalyst before, but have never looked into it. It looks like a really useful framework for my needs.

      I am going to refactor my login code, as I know theres more code than neccessary in its current state.

      You've been more than helpful. In the past, I have posted CGI::Session questions on other forums, and had no replies, and eventually figured it out in my "own" way. I'm greatly appreciative of your speedy help and advice.

      Chris

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2014-07-29 03:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (211 votes), past polls