请问如何控制SESSION中userinfo字段个数

#1 vsxp

目前把用户表加得太多,使得SESSION内容也大增,请问有什么办法控制内容么?盼回,谢谢。

2010-11-11 01:28:14

#2 jake

没必要把整个用户表都记录到SESSION里面,SESSION只是会话信息,一般来说只要保存用户名和角色就行。

2010-11-11 08:50:23

#3 vsxp

嗯,现在我就是不知道怎样把需要的字段内容记录到SESSION             SP默认好像是全部记录了。

2010-11-11 17:04:17

#4 jake

SESSION的使用和数组一样
$_SESSION['username'] = "用户名";
$_SESSION['roles'] = "管理员";
echo $_SESSION['username'];
echo $_SESSION['roles'];

如果不想在SESSION上面放太多东西,那么就不要对$_SESSION进行太多的赋值。
http://www.w3school.com.cn/php/php_sessions.asp
SP默认没有对SESSION做处理,而用spAcl或多语言的时候,才会对session进行很小的赋值。

2010-11-11 17:06:43

#5 homexigua

user表字段少点,加个user_detail 表 一对一

2010-11-11 17:16:20

#6 vsxp

SpAclSession|s:7:"GBADMIN";userinfo|a:4:{s:3:"uid";s:1:"2";s:5:"uname";s:5:"admin";s:5:"upass";s:32:"e10adc3949ba59abbe56e057f20f883e";s:3:"acl";s:7:"GBADMIN";}
这是官方留言本自动产生的SESSION,怎么把所有的表内容都记录下来了。
我没有对$_SESSION进行赋值操作。是自动产生的。谢谢。

2010-11-11 17:26:17

#7 jake

SpAclSession|s:7:"GBADMIN";userinfo|a:4:{s:3:"uid";s:1:"2";s:5:"uname";s:5:"admin";s:5:"upass";s:32: ...
vsxp 发表于 2010-11-11 17:26
你说的说这个例子对吧http://speedphp.com/bbs/thread-142-1-1.html
这里说明一下,上面的程序,只是演示其中一种用户登录的方法,把用户的资料记录到SESSION里面,
SESSION是一个数组,开发者可以自己决定怎么样来用,可以把用户资料全部放进去,也可以把部分放进去。所以楼主完全可以改写上面的例子,想放多少东西到SESSION里面都可以。

2010-11-11 18:00:08

#8 vsxp

user表字段少点,加个user_detail 表 一对一
homexigua 发表于 2010-11-11 17:16
谢谢建议,但分表不能解决根本问题。

2010-11-11 18:03:58

#9 vsxp

你说的说这个例子对吧
这里说明一下,上面的程序,只是演示其中一种用户登录的方法,把用户的资料记录到S ...
jake 发表于 2010-11-11 18:00
哦,谢谢热情的回复。

2010-11-11 18:04:20

#10 vsxp

找到地方了。
lib_user.php中的。

$result = $this->find($conditions)
……
$_SESSION["userinfo"] = $result; // 在SESSION中记录当前用户的信息
再次感谢。

2010-11-11 18:08:01