Хранение сессий PHP 5.3 в PostgreSQL 8.4 - PullRequest
0 голосов
/ 21 сентября 2011

Я использую CentOS 6.0 Linux 64 bit со стандартными пакетами:

# 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

и хотел бы изменить свой собственный PHP-скрипт на использование $ _ SERVER ['REMOTE_USER'] для использования $ _ SESSION , но пока не имею опыта работы с PHP-сессиями.

Я бы хотел, чтобы (довольно обширные) пользовательские данные были сохранены в PostgreSQL и сохраните «идентификатор пользователя» только в $ _SESSION.

Однако этот документ гласит: "Это расширение считается необслуживаемым и мертвым".

Кто-нибудь, пожалуйста, есть какой-нибудь совет, что делать здесь?

Может быть, я могу сохранить данные сеанса в БД самостоятельно (и как)?

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Вы можете переопределить обработчики сохранения / загрузки сеанса PHP своими собственными: http://php.net/manual/en/function.session-set-save-handler.php

Это позволяет вам сохранять данные сеанса в базе данных или помещать их на каменный планшет, если хотите.Выбор базового носителя / базы данных не имеет значения, если ваш код правильно отправляет / принимает данные сеанса.

0 голосов
/ 23 сентября 2011

Простой плоский вариант:

sql("INSERT INTO sessions (session,userid) VALUES('".json_encode($_SESSION["toomuchuserinfo"])."','".$_SESSION['userid']."');");
$r=sql("SELECT session FROM sessions where userid='".$_SESSION['userid']."';");
$_SESSION["toomuchuserinfo"]=json_decode($r[0][0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...