您现在的位置是:首页 > 网站建设常见问答网站建设常见问答

php实现会员在线列表

2014-12-18【网站建设常见问答】2668 人已围观

简介今天遇到案例需要用到在线会员列表。这到是个常见的功能,不过在企业网站上很少遇到这种需求。 不过客户既然提出来了,我们技术员一定要努力办到。 会员在线思路:p...

今天遇到案例需要用到在线会员列表。这到是个常见的功能,不过在企业网站上很少遇到这种需求。

不过客户既然提出来了,我们技术员一定要努力办到。

会员在线思路:php mysql session 技术三结合

session记录在线会员信息

mysql保存数据库

php操作 显示 及更新

 建表 CREATE TABLE yinwen_userlist (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user_id` INT NOT NULL ,
`indate` CHAR( 200 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL ,
`inip` CHAR( 200 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL

) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;

$date1=time();//取得当前时间戳

$date2=$date1-1800;//半个钟前的时间戳

$sql=\"delete from userlist  where iddate<\'$date2\'\";//删除半个钟没活动的用户

mysql_query($sql);//执行删除

把这个包函在网站的页就能做到了全员在线的时时更新了。

至于如何把登录的全员添加到表userlist呢,只要在用户登录时添加如下代码就OK了

$in_date=time();

$user_id=;//把用户登录的ID传值,一般用COOKIE实现,或session,这看程式员自己决定

$inip=$_SERVER[\'REMOTE_ADDR\'];//这个是取用户登录的IP

$sql=\"insert into userlist(in_date,user_id,inip) values(\'$in_date\',\'$user_id\',\'$inip\')\";

mysql_query($sql);

OK,这样就添加了登录用户的在线的信息了。

还有退出的也要删除哦,在退出时,处理代码:

$user_id=;//把用户登录的ID传值,一般用COOKIE实现,或session,这看程式员自己决定

$sql=\"delete from userlist where user_id=‘$user_id’\";

mysql_query($sql);

OK,把退出登录的用户从会员在线表中删除的功能也好了。

这样看起来已经都OK了,还有一个没完善的地方,就是会员的动作,也就是登录后再看其它相关页,是在线状态,但这里还没做得登录时间的及时更新,好,再把这个代码完善一下:

$user_id=;//把用户登录的ID传值,一般用COOKIE实现,或session,这看程式员自己决定

$indate=time();

$sql=\"update userlist set indate=\'$indate\' where user_id=\'$user_id\'\";

mysql_query($sql);

好了,把上面的更新代码放在以下代码的上面的,也就是刚才说包函在网站的网页中的代码上面:

$date1=time();//取得当前时间戳

$date2=$date1-1800;//半个钟前的时间戳

$sql=\"delete from userlist  where iddate<\'$date2\'\";//删除半个钟没活动的用户

mysql_query($sql);//执行删除

OK,这样的半个钟会员在线用户也就做好了,当然网上有的是用数据库表的时间性来做的,那个性能可能会更好,也更合适用,但这给初学者一个思路。


 



关注宁波网站建设博客,更多精彩分享,敬请期待!
 

Tags:

很赞哦! ()

文章评论

点击排行

本站推荐

站点信息