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;
}
登录文件logon.php
include "global.php"; //把global.php文件包含进来
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"]."你已经登录了"; //如果已登录则显示提示
echo str;
}
?>
测试文件test.php
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;
?>
退出文件exit.php
include "global.php"; //把global.php文件包含进来
if (_SESSION["online"]=="on"){
con="userid=userid";
session->del(con); //在session表中删除用户信息。
session_destroy(); //结束当前的会话,并清空会话中的所有资源
echo "已经退出社区......";
}
?>