Home > php教程 > php手册 > php实现在线用户计算

php实现在线用户计算

WBOY
Release: 2016-06-13 10:09:38
Original
1079 people have browsed it

include "class/config.inc.php"; //把配置文件包含进来
$db = new db;
$db-> db_connect( ); //连接数据库
$user = new user; //初始化
$session = new session;
//启动会话
session_start();
//删除session表中已经过期的用户(即非在线网友)因为此文件总是被调用从而保证显示的都是当前在线的用户
$curtime=time();
$con="lastactivity $session->del($con);
//正在线的网友需不断更新session表中的lastactivity时间,并重新设置用户的COOKIES
if ($HTTP_SESSION_VARS["online"]=="on"){ //此处也可用$_SESSION[“online”]
$userid=$HTTP_SESSION_VARS["userid"]; //取当前在线用户的userid
$ipaddress=substr($REMOTE_ADDR,0,50);
$lastactivity=time()+3600; //更新最后活动时间,如时一个小时之内未调动页面就认为用户已离线,从而会被删除。
$session->update($userid,$ipaddress,$lastactivity);
}else{
//如果未登录那直接转入登录页面
$firstpage="logon.php";
header ("Location: $firstpage");
exit;
}

insert($userid,$ipaddress,$lastactivity) 把登录成功的用户插入到表中
update($userid,$ipaddress,$lastactivity)更新在线用户最后活动时间
del($con)删除满足条件的用户,用它来清除离线用户
get_from_condition($con) 返回满足查询条件的记录集

if ($hiddenField=="0"){ //测检表单有未被提交
$con="username='$username' and userpwd='$userpwd'";
$result=$user->get_from_condition($con);
if ($user->counter==1){
if (!session_is_registered("online")){//检测是否被登记过
session_register("online"); //登记一个新的变量为会话变量
}
if (!session_is_registered("ccauser")){
session_register("ccauser");
}
if (!session_is_registered("userid")){
session_register("userid");
}
$ccauser=$username; //给会话变量赋值
$online="on"; //这个变量在global.php用到以更新最后活动时间lastactivity
$userid=$user->userid;
$ipaddress=substr($REMOTE_ADDR,0,50);
$lastactivity=time()+3600;
$con=" userid=$userid";
$session->get_from_condition($con);
//判断会话是否存在,有可能你在不同的机器上登两次。
if ($session->counter==1){
$session->update($userid,$ipaddress,$lastactivity); //如存在,更新
}else{
$session->insert($userid,$ipaddress,$lastactivity); //如不存在,插入
}
//在客户机设置COOKIES
SetCookie("ccauser",$username,time()+3600);
Header("Location:test.php");//然后导向测试页
}
}
?>
if($HTTP_SESSION_VARS["online"]=="") { //判断是否已登录
?>
//下面是登录的表单

名称:
密码:

 


}else{
echo "网友:".$HTTP_COOKIE_VARS["ccauser"]."你已经登录了"; //如果已登录则显示提示
$str="

退出社区";
echo $str;
}
?>

include "global.php"; //把global.php文件包含进来
$strWelcome="欢迎".$_SESSION['ccauser']."
";
echo $strWelcome; //显示欢迎信息
$str=” 当前在线用户:
===================
”;
$con=" 1=1";
//提出session表中所有记录即是当前在线用户,未把游客算在内
$result=$session->get_from_condition($con);
while($row=mysql_fetch_array($result)){
$con1="userid=$row[userid]";
$user->get_from_condition($con1);
$str.=$user->username." ";
}
echo $str;
?>

退出社区

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template