I am having some problems with $Session->Abandon().

I have the following code on a logout page :
    use Data::Dumper;
    warnd("b4",Dumper $Session);
    $Session->Abandon();
    warnd("after",Dumper $Session);
    $Response->Redirect("/login/login.asp");

Each time I print the contents of $Session, even after I have abandoned it, I get shown the same contents.
"warnd" is a logging function I use which just dumps to a file.


Why, even after I have abandoned a session, is there still data in the session object ?


$Session->Abandon makes a session timeout immediately. However,
the session data will exist until the session manager cleans up
that session, and calls Session_OnEnd on it. The effect of $Session->Abandon
timing out a session immediately is that a web browser will get a new
session on the *next* web request.


A more accurate way to do this might be to call Session_OnEnd immediately,
but the problem remains then what state the $Session object is in
after $Session->Abandon. If Session_OnEnd is called, it will be deleted.
Perhaps one might want a new session created immediately after $Session->Abandon,
but the HTTP headers might have already been sent by this time, so the
browser would not be aware of it, so that does not seem like a good way to go.

Thanks for the answer. I will explain a little bit more about the problem (which I have solved).

I dont think the current system needs to be improved... it had worked fine for me until I noticed a problem with my logout code.
I only noticed the fact that the Session->Abandon didnt clear up immediately when debugging another issue.


Incase any other users notice, the version of Konquerer that ships with Redhat 7.3 is a bit buggy. When I logged out of my APP, I would go back to a login page. I then logged in as a different user, but somehow, it thought I was the old user. I couldnt understand as I knew I had explicity killed off the session on logout.

It seems to have been a Konquerer bug because when I upgraded (via Red Carpet) it all worked OK.
So it appears that Konquerer had a caching issue and was reposting the *old* credentials from the previous login.


Anyway, to cut a long story short, the problem is solved, and I dont really see any valid reason to change the implementation of Session->Abandon at present.

Richard


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to