繁体   English   中英

将PHP 5.3会话存储到PostgreSQL 8.4中

[英]Storing PHP 5.3 sessions into PostgreSQL 8.4

我使用的是带有库存包的CentOS 6.0 Linux 64位:

# 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中保存一个“用户ID”。

但是此文档说“此扩展被认为是未维护且已失效”。

请问有人有什么建议吗?

也许我可以自己(以及如何)将会话数据保存到数据库中?

您可以使用自己的方法覆盖PHP的会话保存/加载处理程序: http : //php.net/manual/en/function.session-set-save-handler.php

这样一来,您就可以将会话数据保存到数据库中,或者根据需要将其碎片化到石板上。 只要您的代码正确发送/接收会话数据,基础存储介质/数据库的选择就无关紧要。

简单的平面版本:

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]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM