要使用数据库,建立一个表,比如名字是online,至少有以下列:
name_ip 存放登录用户名,未登录的存放IP,char类型
url 存放每个页面的地址,char类型
last_time 存放刷新页面的最后时间,int类型
表的主键是:name_ip+url
每个页面一开始就要刷新这个表,使用的SQL是:
$name_ip='用户名或者IP';//你能搞定
$url=$_SERVER["PHP_SELF"];
$time=time();
$sql="replace delayed into online (name_ip,url,last_time) values ('$name_ip','$url',$time)";
mysql_query($sql);
获取某页面在线人数的查询是语句
$limit=time()-1060;//10分钟内访问的认为在线,10分钟60秒/分钟
$sql="select count() from online where url='$url' and last_time>=$limit";
$res=mysql_query($sql);
list($online_count)=mysql_fetch_row($res);
mysql_free_result($res);
echo "本页面在线人数: $online_count";
在check中当验证通过后在sql语句下就用session("变量名")进行保存用户名,密码
Set rs=ServerCreateObject("ADODBRecordSet")
rsOpen "SELECT FROM 表 WHERE [name]='"&strusername&"' AND [pwd]='"&strpassword&"'", objConnection
If Not rsEof Then
session("name")=rs("name")
session("pwd")=rs("pwd")
ResponseRedirect("asp")
else
responsewrite "<SCRIPT>alert ('您的权限不够,请与管理员联系!');parentlocation='javascript:historygo(-1)'</SCRIPT>"
end if
rsClose
Set rs=Nothing
avaxwebsocketHandshakeResponse;
import javaxwebsocketserverHandshakeRequest;
import javaxwebsocketserverServerEndpointConfig;
import javaxwebsocketserverServerEndpointConfigConfigurator;
/
获取>
用户登录的时候连接服务器,服务器建立一个全局静态Map , key可以使用用户的唯一标示,比如账号,value根据自己要求定,可以使自己定义的用户对象(这样用户多了,Map数据会过大),可以写用户在数据库的id(主键)(也可以写账号,可以通过账号获取用户信息)。当用户登录的时候,如果登录成功,把这个用户put(添加)到Map中,如果有用户推出,就从Map中移除,在线用户的信息,就在Map中,可以供其他类,方法是用这个Map获取在线用户,具体用户信息,可以通过Map中的value或key查询
可以用ServletContext来实现 在ServletContext设置一个变量 如果有人打开这个servlet 就在ServletContext 里记录一下 如果有其他人在访问这个servlet 这个变量已经存在的话就不允许方法 只有访问那个人退出页面的时候在给服务器返回一个消息删除
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢 !
以上就是关于php 如何显示在线用户数量以及用户信息全部的内容,包括:php 如何显示在线用户数量以及用户信息、asp登录后如何获取用户信息(在线等)、java websocket怎么获得在线的用户等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)