我有一个支持大约80个用户的SESSION,我想打印所有用户名并每60秒左右刷新一次页面。我知道如何刷新页面,但<?php print_r($_SESSION['username']); ?>
仅打印与我的个人会话相关联的用户名。
答案 0 :(得分:4)
$ _ SESSION对于网站的每个用户都是唯一的,它使用cookie。 print_r只能显示当前$ _SESSION的内容。您需要一个数据库来了解所有用户的名称和Javascript以刷新页面。
答案 1 :(得分:4)
不幸的是,会话变量不能像那样工作。
为了跟踪每个会话,一种方法是将每个登录/连接记录到一个附有时间戳的MySQL表。
然后在您的跟踪页面上,让它删除非活动用户,然后选择其余用户:
即
mysql_query("DELETE FROM sessions WHERE time < " . time() - 60);
$result = mysql_query("SELECT * FROM sessions");
while ($row = mysql_fetch_assoc($result)) {
echo $row['username'] . "<br />";
}
然后投入<meta http-equiv="refresh" content="60">
来刷新页面。
答案 2 :(得分:1)
也许您想要使用类似“memcached”的东西并在那里使用变量。
如果您将会话存储在单独的文件夹中(而不是默认的/ tmp文件夹),您可以在该文件夹上执行一个列表,以查找服务器上当前设置的会话数,知道它不是完美的确切的数字。
数据库或memcached可能是您最好的可能性。
答案 3 :(得分:1)
会话数据存储在文件中,具体取决于您可以解析这些文件的应用程序设置。在我看来,这不是一个非常合适的解决方案,但它可以解决问题。
答案 4 :(得分:0)
您需要添加当前登录用户的数据库表,每次有人登录,将他们的ID添加到表中,当他们退出(或超时)删除ID时,您可以保存其他信息ID,例如time,sessionID或IP地址或这些的组合。它会让你很好地了解谁在线。
为了更进一步,您可以拥有一个字段,其中包含每个页面最后一次更改的时间,每次为该人员提供一个覆盖此值的页面时,这可以用于注销那些只是离开您的网站而不注销。例如,如果他们不刷新页面30分钟,您可以将该人员记录在网站之外。
答案 5 :(得分:0)
我会