On Tuesday 02 September 2003 07:46, you wrote:

(I am sorry I am not replying to the actual email, but to a forwarded 
copy from my desktop at home.)

> > It seems, however, that Apache::Session objects stop being stored
> > when I put the session in pnotes() with a code analogous to this:
>
> Can you tell us more about the problem is?  What do you see when you
> take the session hash back out of pnotes?

I have dumped the hash in a content handler and it seems to be OK.

> >     my $r = Apache::Request->instance(shift);
>
> No need to involve Apache::Request just for this.  Your handler
> should be getting $r passed to it.

Apache::Request is used because the authenticator handles login via 
param(), and more handlers need the parameters afterwards. 

> >     tie my (%session), 'Apache::Session::Oracle', undef,
> >       {Handle => $class->dbh(), Commit => 1};
> >
> >     $r->pnotes(session => \%session);
>
> Show us the code you use to get it back.

When a request is received the session id is retrieved from a cookie. 
The schema (with some irrelevant checks removed) would be this:

    my %cookies = Apache::Cookie->fetch;
    my $cookie = $cookies{COOKIE_NAME()};
    my $session_id = $cookie->value;
    my %session;
    eval {
        tie %session, 'Apache::Session::Oracle', $session_id,
          {Handle => $class->dbh(), Commit => 1};
    };

The eval block is there now because it seems Apache::Session::Oracle 
dies if it cannot retrieve the session.

That code works all right if \%session is not stored in pnotes(), but if 
it is put the session is not read back from the database and I have 
checked from a database client that there is no new row written.

I am doing basic stuff with this, so if it sounds strange it is likely 
that I doing something wrong.

-- fxn



-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html

Reply via email to