Storing PHP 5.3 sessions into PostgreSQL 8.4

Started by Alexander Farberover 14 years ago3 messagesgeneral
Jump to latest
#1Alexander Farber
alexander.farber@gmail.com

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

In reply to: Alexander Farber (#1)
Re: Storing PHP 5.3 sessions into PostgreSQL 8.4

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

#3Adam Cornett
adam.cornett@gmail.com
In reply to: Alexander Farber (#1)
Re: Storing PHP 5.3 sessions into PostgreSQL 8.4

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

Attachments:

session.sqltext/x-sql; charset=US-ASCII; name=session.sqlDownload
dbsession.inc.phpapplication/x-httpd-php; name=dbsession.inc.phpDownload