Обсуждение: Storing PHP 5.3 sessions into PostgreSQL 8.4

Поиск
Список
Период
Сортировка

Storing PHP 5.3 sessions into PostgreSQL 8.4

От
Alexander Farber
Дата:
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

Re: Storing PHP 5.3 sessions into PostgreSQL 8.4

От
Raymond O'Donnell
Дата:
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

Re: Storing PHP 5.3 sessions into PostgreSQL 8.4

От
Adam Cornett
Дата:


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
Вложения