如何在会话中抓取同一页面上的用户并列出它们?

时间:2012-03-08 04:59:10

标签: php ajax session

On this page我创建了一个仅在您登录论坛时才有效的聊天室。它会抓取页面上的会话用户名,并在您发送聊天时显示您的姓名。消息被发送和存储,并使用Ajax通过.txt文件发送出去,并使用PHP进行处理。没有数据库(截至目前)。

我想知道我怎么能抓住&列出正在聊天的页面上的当前用户?我对PHP不是很好,所以这对我来说有点复杂。

我的猜测是将用户名记录到数据库中,然后获取显示的任何人...我是否关闭?

4 个答案:

答案 0 :(得分:0)

试试这个

<?php 
 session_start(); 
echo "<pre>";
 Print_r ($_SESSION);
echo "</pre>";

 //echo a single entry
 echo $_SESSION['username'];
?>

foreach循环($ _SESSION)将显示所有会话数据..

foreach ($_SESSION as $key=>$val)
    echo $key." ".$val;

答案 1 :(得分:0)

您需要保存每个用户的会话数据以处理这种情况。存储可以是数据库表或文件。阅读有关PHP的会话保存处理程序以了解更多信息。请参阅http://phpmaster.com/writing-custom-session-handlers/http://us2.php.net/manual/en/session.customhandler.php

将会话数据存储到数据库后,您可以查询所有sessionid并使用SessionHandler :: read(sessionid)函数来检索会话数据。

答案 2 :(得分:0)

您不应该使用有效会话。
您必须计算聊天中活跃的用户(即用户在几个最后更新周期内请求聊天更新),而不是会话

您必须在文件或数据库中存储用户名以及时间戳,并从该列表中删除具有过期时间戳的用户。

答案 3 :(得分:-1)

您需要实现一种通过db(最佳选项)或文件

来跟踪用户活动的方法