我正在使用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”。
但是this doc说“此扩展程序被视为无法维护且已死亡”。
有人有什么建议吗,在这做什么?
也许我可以自己将会话数据保存到数据库中(以及如何)?
答案 0 :(得分:1)
您可以使用自己的:http://php.net/manual/en/function.session-set-save-handler.php
覆盖PHP的会话保存/加载处理程序这使您可以将会话数据保存到数据库中,或者根据需要将其打包到石碑上。只要您的代码正确地发送/接收会话数据,底层存储介质/数据库的选择就无关紧要了。
答案 1 :(得分:0)
简单版本:
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]);