如何利用PHP会话显示出当前在线的用户Word格式.docx

上传人:b****1 文档编号:5640918 上传时间:2023-05-05 格式:DOCX 页数:10 大小:27.05KB
下载 相关 举报
如何利用PHP会话显示出当前在线的用户Word格式.docx_第1页
第1页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第2页
第2页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第3页
第3页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第4页
第4页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第5页
第5页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第6页
第6页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第7页
第7页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第8页
第8页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第9页
第9页 / 共10页
如何利用PHP会话显示出当前在线的用户Word格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

如何利用PHP会话显示出当前在线的用户Word格式.docx

《如何利用PHP会话显示出当前在线的用户Word格式.docx》由会员分享,可在线阅读,更多相关《如何利用PHP会话显示出当前在线的用户Word格式.docx(10页珍藏版)》请在冰点文库上搜索。

如何利用PHP会话显示出当前在线的用户Word格式.docx

Cannotsendsessioncachelimiter-headersalreadysent(outputstartedat/usr/local/apache/htdocs/cga/member/1.php:

2)in/usr/local/apache/htdocs/cga/member/1.phponline3

2、session_register

登记一个新的变量为会话变量

booleansession_register(stringname);

布尔值。

这个函数是在全局变量中增加一个变量到当前的SESSION中,参数name就是想要加入的变量名,成功则返回逻辑值true。

可以用$_SESSION[name]或$HTTP_SESSION_VARS[name]的形式来取值或赋值。

3、session_is_registered

检查变量是否被登记为会话变量。

boobeansession_is_registered(stringname);

这个函数可检查当前的session之中是否已有指定的变量注册,参数name就是要检查的变量名。

成功则返回逻辑值true。

4、session_unregister

删除已注册的变量。

booleansession_session_unregister(stringname);

这个函数在当前的session之中删除全局变量中的变量。

参数name就是欲删除的变量名,成功则返回true.

5、Session_destroy

结束当前的会话,并清空会话中的所有资源。

booleansessiondestroy(void);

这个函数结束当前的session,此函数没有参数,且返回值均为true

上面介绍函数下文将会用到,但还有一些有关session的函数也介绍一下:

6、session_encode

sesssion信息编码

stringsession_encode(void);

字符串

返回的字符串中包含全局变量中各变量的名称与值,形式如:

a|s:

12:

"

itisatest"

;

c|s:

4:

lala"

a是变量名s:

12代表变量a的值"

itisatest的长度是12变量间用分号”;

”分隔。

7、session_decode

sesssion信息解码

booleansession_decode(stringdata)

这个函数可将session信息解码,成功则返回逻辑值true

8、session_name

存取当前会话名称

booleansession_name(string[name]);

这个函数可取得或重新设置当前session的名称。

若无参数name则表示获取当前session名称,加上参数则表示将session名称设为参数name

9、session_id

存取当前会话标识号

booleansession_id(string[id]);

这个函数可取得或重新设置当前存放session的标识号。

若无参数id则表示只获取当前session的标识号,加上参数则表示将session的标识号设成新指定的id

10、session_unset

删除所有已注册的变量。

voidsession_unset(void)

这个函数和Session_destroy不同,它不结束会话。

就如同用函数session_unregister逐一注销掉所有的会话变量。

编程思路

在社区、论坛中,我们常能看到当前在线的会员,使访问者有宾至如归之感。

但这种程序是怎么做出来的呢?

流程如下:

建表user,保存注册用户信息。

字段

类型

备注

userid

Int(10)

用户序列号 

auto_increment 

关键字

username

Varchar(50)

用户匿称

userpwd

密码

email

电子信箱

oicq

OICQ号

signature

mediumtext

签名

imgurl

头像

joindate

加入时间

建类文件user.php定义函数

exist($username)确认新注册用户是不是已经存在

nsert($username,$userpwd,$email,$oicq,$imgurl,$signature)插入注册用户

update($userid,$username,$userpwd,$email,$oicq,$imgurl,$signature)更新用户数据

get_from_condition($con)返回满足查询条件的记录集

建表session。

当用户登录时即向此表插入新记录,离开或超时后删除记录,保证表中保存的是当前在线的用户。

sessionid

序列号 

用户序列号取自user表

ipaddress

Ip地址

lastactivity

最后活动时间,用它来判断用户是否还在线

建类文件session.php定义函数

insert($userid,$ipaddress,$lastactivity)把登录成功的用户插入到表中

update($userid,$ipaddress,$lastactivity)更新在线用户最后活动时间

del($con)删除满足条件的用户,用它来清除离线用户

公用文件global.php

include"

class/config.inc.php"

//把配置文件包含进来

$db=newdb;

$db->

db_connect();

//连接数据库

$user=newuser;

//初始化

$session=newsession;

//启动会话

session_start();

//删除session表中已经过期的用户(即非在线网友)因为此文件总是被调用从而保证显示的都是当前在线的用户

$curtime=time();

$con="

lastactivity<

$curtime"

$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;

//更新最后活动时间,如时一个小时之内未调动页面就认为用户已离线,从而会被删除。

update($userid,$ipaddress,$lastactivity);

}else{

//如果未登录那直接转入登录页面

$firstpage="

logon.php"

header("

Location:

$firstpage"

);

exit;

}

登录文件logon.php

<

?

include"

global.php"

//把global.php文件包含进来

if($hiddenField=="

0"

){//测检表单有未被提交

username='

$username'

anduserpwd='

$userpwd'

$result=$user->

get_from_condition($con);

if($user->

counter==1){

if(!

session_is_registered("

)){//检测是否被登记过

session_register("

//登记一个新的变量为会话变量

ccauser"

)){

$ccauser=$username;

//给会话变量赋值

$online="

//这个变量在global.php用到以更新最后活动时间lastactivity

$userid=$user->

userid;

userid=$userid"

//判断会话是否存在,有可能你在不同的机器上登两次。

if($session->

//如存在,更新

insert($userid,$ipaddress,$lastactivity);

//如不存在,插入

//在客户机设置COOKIES

SetCookie("

$username,time()+3600);

Header("

test.php"

//然后导向测试页

>

if($HTTP_SESSION_VARS["

){//判断是否已登录

//下面是登录的表单

formname="

form1"

method="

post"

action="

名称:

<

inputtype="

text"

name="

username"

密码:

userpwd"

hidden"

hiddenField"

value="

submit"

Submit"

提交"

reset"

Submit2"

重置"

/form>

echo"

网友:

.$HTTP_COOKIE_VARS["

]."

你已经登录了"

//如果已登录则显示提示

$str="

br>

ahref='

exit.php'

退出社区<

/a>

echo$str;

测试文件test.php

$strWelcome="

欢迎<

fontcolor=red>

.$_SESSION['

ccauser'

/font>

echo$strWelcome;

//显示欢迎信息

$str=”当前在线用户:

===================<

”;

1=1"

//提出session表中所有记录即是当前在线用户,未把游客算在内

$result=$session->

while($row=mysql_fetch_array($result)){

$con1="

userid=$row[userid]"

$user->

get_from_condition($con1);

$str.=$user->

username."

"

退出文件exit.php

if($_SESSION["

){

userid=$userid"

//在session表中删除用户信息。

session_destroy();

//结束当前的会话,并清空会话中的所有资源

已经退出社区......"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2