"Caleb Walker" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> On Wed, 02 Jun 2004 10:29:31 +0100, Michael Nolan wrote:
>
> > Caleb Walker wrote:
> >
> >> I have 2 servers fail-over/load-balanced behind an F5
> >> bigIP.  I want session data to be maintained in the event one server
takes
> >> a dive.  In this scenario, if a user is in the middle of doing
> >> something while logged in, they will not have to lose all work and log
> >> back into the server to continue working. Can that be done without
> >> rewriting an application?
> >> I saw a link here:
> >>
http://www.phpfreaks.com/quickcode/DB_eSession_class_securely_stores_PHP_ses
sions_in_a_MySQL_DB/286.php
> >> but this seems to be something that would have to be written into the
> >> application and I didn't write it and do not want to take on the
> >> responsibility to do so from here.  Any thoughts would be much
appreciated.
> >>
> >> Thank You,
> >> Caleb
> >>
> >
> >
> > Yes, you can use a database to store session data and retain existing
> > session manipulation methods.  Surprisingly, the PHP manual tells you
how:
> >
> > http://uk.php.net/manual/en/function.session-set-save-handler.php
> >
> > And lists a couple of examples, including this one at Zend:
> >
> > http://www.zend.com/zend/spotlight/code-gallery-wade8.php
> >
> > Mike
>
> This looks like modifications that need to be made to the application.  I
> dont really want to touch the application.  Instead I just want PHP,
> through the php.ini file or whatever to take the session data and put it
> in a database instead of the file system.  In doing it this way, I assume
> that I will not have to touch somebody else's code.
>
> Thanks for the response.

It's pretty simple. I'm using PEAR's HTTP_Session in combination with
PEAR::DB:
http://pear.php.net/package/DB
http://pear.php.net/package/HTTP_Session

Just set those two packages up, create a session table (see
HTTP_Session/Container/DB.php for the schema) and set this HTTP_Session
option:
HTTP_Session::setContainer('DB', array('dsn' => $dsn, 'table' => 'sessions',
'autooptimize' => true));

...and off you go.

Ideally you should change the lines where the session variables are set and
get to use HTTP_Sessions static methods instead. But this shouldn't be much
of a problem. It could even work without these changes by directly accessing
$_SESSION.

Bets regards, Torsten Roehr

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to