Thread: Storing PHP 5.3 sessions into PostgreSQL 8.4
Hello, I'm using CentOS 6.0 Linux 64 bit with the stock packages: # rpm -qa|grep php php-cli-5.3.2-6.el6_0.1.x86_64 php-5.3.2-6.el6_0.1.x86_64 php-xml-5.3.2-6.el6_0.1.x86_64 php-pgsql-5.3.2-6.el6_0.1.x86_64 php-pear-1.9.0-2.el6.noarch php-pdo-5.3.2-6.el6_0.1.x86_64 php-common-5.3.2-6.el6_0.1.x86_64 # rpm -qa|grep postgres postgresql-devel-8.4.7-1.el6_0.1.x86_64 postgresql-docs-8.4.7-1.el6_0.1.x86_64 postgresql-libs-8.4.7-1.el6_0.1.x86_64 postgresql-8.4.7-1.el6_0.1.x86_64 postgresql-server-8.4.7-1.el6_0.1.x86_64 and would like to change my own PHP script from using $_SERVER['REMOTE_USER'] to using $_SESSION, but don't have any experience with PHP sessions yet. I'd like the (quite extensive) user data to be stored into the PostgreSQL and only save a "user id" in $_SESSION. However the web page http://www.php.net/manual/en/session-pgsql.installation.php says "This extension is considered unmaintained and dead". Does anybody please have any advice what to do here? Maybe I can save session data into the db myself (and how)? Thank you Alex
On 21/09/2011 15:53, Alexander Farber wrote: > Hello, > > I'm using CentOS 6.0 Linux 64 bit with the stock packages: > > # rpm -qa|grep php > php-cli-5.3.2-6.el6_0.1.x86_64 > php-5.3.2-6.el6_0.1.x86_64 > php-xml-5.3.2-6.el6_0.1.x86_64 > php-pgsql-5.3.2-6.el6_0.1.x86_64 > php-pear-1.9.0-2.el6.noarch > php-pdo-5.3.2-6.el6_0.1.x86_64 > php-common-5.3.2-6.el6_0.1.x86_64 > > # rpm -qa|grep postgres > postgresql-devel-8.4.7-1.el6_0.1.x86_64 > postgresql-docs-8.4.7-1.el6_0.1.x86_64 > postgresql-libs-8.4.7-1.el6_0.1.x86_64 > postgresql-8.4.7-1.el6_0.1.x86_64 > postgresql-server-8.4.7-1.el6_0.1.x86_64 > > and would like to change my own PHP script from using > $_SERVER['REMOTE_USER'] to using $_SESSION, > but don't have any experience with PHP sessions yet. > > I'd like the (quite extensive) user data to be stored into > the PostgreSQL and only save a "user id" in $_SESSION. I think it's an all-or-nothing thing: if you want to save the session to the DB, then everything in $_SESSION goes in. You can easily replace the default session handler in PHP with your own: http://www.php.net/manual/en/function.session-set-save-handler.php This is what Drupal does, for example, to save the session in the DB. You probably need to read up a bit more on sessions in PHP: http://www.php.net/manual/en/book.session.php Ray. -- Raymond O'Donnell :: Galway :: Ireland rod@iol.ie
On Wed, Sep 21, 2011 at 10:53 AM, Alexander Farber <alexander.farber@gmail.com> wrote:
Hello,
I'm using CentOS 6.0 Linux 64 bit with the stock packages:
# rpm -qa|grep php
php-cli-5.3.2-6.el6_0.1.x86_64
php-5.3.2-6.el6_0.1.x86_64
php-xml-5.3.2-6.el6_0.1.x86_64
php-pgsql-5.3.2-6.el6_0.1.x86_64
php-pear-1.9.0-2.el6.noarch
php-pdo-5.3.2-6.el6_0.1.x86_64
php-common-5.3.2-6.el6_0.1.x86_64
# rpm -qa|grep postgres
postgresql-devel-8.4.7-1.el6_0.1.x86_64
postgresql-docs-8.4.7-1.el6_0.1.x86_64
postgresql-libs-8.4.7-1.el6_0.1.x86_64
postgresql-8.4.7-1.el6_0.1.x86_64
postgresql-server-8.4.7-1.el6_0.1.x86_64
and would like to change my own PHP script from using
$_SERVER['REMOTE_USER'] to using $_SESSION,
but don't have any experience with PHP sessions yet.
I'd like the (quite extensive) user data to be stored into
the PostgreSQL and only save a "user id" in $_SESSION.
However the web page
http://www.php.net/manual/en/session-pgsql.installation.php
says "This extension is considered unmaintained and dead".
Does anybody please have any advice what to do here?
Maybe I can save session data into the db myself (and how)?
Thank you
Alex
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
I have attached some SQL and PHP that we use to store sessions in the database, its based off http://www.php.net/manual/en/function.session-set-save-handler.php
I also in our nightly maintenance script I delete sessions older than 24 hours as some times php doesn't GC sessions right under CGI.
delete from sessions where ts < (now() - '24 hours'::interval);
--
Adam Cornett
Adam Cornett