【发布时间】:2011-11-28 18:47:24
【问题描述】:
我现在有一个基本的登录脚本。
用户登录时定义了2个变量:
$_SESSION['user_id'] = $user['user_id'];
$_SESSION['username'] = $user['username'];
index.php 文件有这个
session_start();
if(array_key_exists('user_id', $_SESSION) && array_key_exists('username', $_SESSION)):
这一切都很好,但是一旦会话开始,我想从数据库中添加更多值,所以我在这里有这个代码:
$res = mysql_query($sql);
$_SESSION = mysql_fetch_assoc($res);
当我这样做时,它会覆盖 $_SESSION['user_id'] 和 $_SESSION['username']。 我试过这个:
$_SESSION .= mysql_fetch_assoc($res);
但是没有用。
有人有什么想法吗?
谢谢 彼得
【问题讨论】:
-
我想补充一点,这是一个坏主意。您应该只将用户 ID 存储在会话中,因为用户名、角色、电子邮件等可能会在某些时候发生变化。最好在每个页面上加载需要的内容。
-
如果我这样做,那么网站会变慢,因为它每次都加载大量数据。除非用户更改,否则此数据库上的数据不会更改,当用户更改其帐户信息时,$_SESSION 变量将被重新定义