我用PHP做的聊天室,统计在线人数,我在数据库里加了一列,登陆成功变1,怎么判断下线变0你不要这么设置你把那一列 作为 最后一次通信php数据库会员在线聊天的时间戳(不是最后一次说话的时间)
【php数据库会员在线聊天 php数据库会员在线聊天怎么用】你聊天室 是不是每隔 一段时间(比如 5秒) 自动刷新?每次刷新 就重新设置该用户 这个字段为当前时间戳那么 当 这个用户下线或者直接关闭网页 超过一段时间(比如 一分钟php数据库会员在线聊天,也就是这个字段停留在一分钟前的时间戳,那就判定为下线)
教你巧用PHP MySQL搭建一个聊天室;MySQL并发能力强 响应速度快 是性能优异php数据库会员在线聊天的数据库软件;PHP是功能强大的服务器端脚本语言 笔者在山西铝厂网站开发中 采用PHPMySQL 建立php数据库会员在线聊天了多种应用 下面 以一个简单的聊天室设计为例 介绍PHP MySQL在网页开发中的应用
总体设计
构思与规划:
聊天室的基本原理 就是把每个连上同一网页的用户传送的发言数据储存起来 然后将所有的发言数据传给每一用户 也就是说 用数据库汇集每个人的发言 并将数据库中的数据传给每一个人就实现php数据库会员在线聊天了聊天室的功能
表设计
首先使用MySQL建立表chat用来储存用户的发言:
mysql CREATE TABLE chat(chtime DATATIMEnick CHAR( ) NOT NULLwords CHAR( ));
表中只设定php数据库会员在线聊天了三个域 chtime是发言的时间 nick为发言者的昵称 words是发言的内容 发言最多 个字符
网页设计
一个最简单的聊天室通常需要两个页框:一个页框是用户输入发言的表单 另一个用来显示大家的发言 所以代码段通常至少需要如下几段:
建立页框的结构(main php)
显示大家发言的程序段(cdisplay php)
传送用户发言的程序段(speak php)
用户登录进入聊天室程序段(login php)
代码设计
以上规划完成后 就可以着手代码设计php数据库会员在线聊天了 采用php可以非常简明实现以上的功能
用户登录login php 本段代码是一个完全HTML网页
<><head><title>用户登录</title></head><body>请输入您的昵称<br><form action= main php method= post target= _self ><input type= text name= nick cols= ><input type= submit value= https://www.04ip.com/post/登录 ></body></>
用户提交自己的昵称后 就进入到聊天室 以下的处理交由main php处理
页框主体代码段main php:
<?setcookie( nick $nick) //用cookie记录用户昵称 是常用的传递变量方法?><><title>山西铝厂聊天室试用版ver </title><frameset rows= % * ><frame src= https://www.04ip.com/post/cdisplay php name= chatdisplay ><frame src= speak php name= speak ></frameset></>
显示发言cdisplay php
本代码段的任务是将表chat中的数据取出 显示在页框中 每次刷新时 取数据库中最近的 条发言 同时 为防止数据库无限增大 需设计删除陈旧数据的功能 代码如下
<><head><title>显示用户发言</title><meta equiv= refresh content= ;url=cdisplay php ></head><body><?$link_ID=mysql_connect( main root );//链接Mysql服务器 服务器名为main 管理员名为rootmysql_select_db( abc ); //选择数据库$str= select * from chat ORDER BY chtime; ; //查询字符串$result=mysql_query($str $link_ID); //送出查询$rows=mysql_num_rows($result); //取得查询结果的记录笔数//取得最后 笔发言 并显示@mysql_data_seek($resut $rows ); //移动记录指针到前 笔记录if ($rows< ) $l=$rows; else $l= ; //记录总数小于 则最多为该记录数for ($i= ;$i<=$l;$i) {list($chtime $nick $words)=mysql_fetch_row($result);echo $chtime; echo ;echo $nick; echo : ; echo $words; echo <BR> ;}//清除库中过时的数据@mysql_data_seek($result $rows ); //移动记录指针到前 笔记录list($limtime)=mysql_fetch_row($result);$str= DELETE FROM chat WHERE chtime< $limtime ; ;$result=mysql_query($str $link_ID); //送出查询字符串 库中只留前 个记录mysql_close($link_ID);?></body></>
送出发言到数据库speak php
<><head><title>发言</title></head><body><?If ($words){ $link_ID=mysql_connect( main root );mysql_select_db( abc ); //数据库名为abc$time=date(y) date(m) date(d) date(h) date(i) (date(s); //取得当前时间$str= INSERT INTO chat(chtime nick words) values ( $time $nick $words ); ;mysql_query($str $link_ID); //送出发言到数据库mysql_close($link_ID);}?>//输入发言的表单<form action= speak php method= post target= _self ><input type= text name= words cols= ><input type= submit value= https://www.04ip.com/post/发言 ></form></body></>
lishixinzhi/Article/program/PHP/201311/21516
php实时在线视频聊天怎么实现? 1,配置文件
复制代码代码如下:
?php
define('PATH',dirname($_SERVER['SCRIPT_NAME'])); //聊天室目录
define('CHAT_NAME','PHP聊天室');//聊天室名称
define("MESS", "mess.txt");//聊天信息
define("PERSON", "person.txt");//在线人名单
define("RETIME",3);//刷新时间
define("LINE",11);//公共窗口显示的行数
define("PRLINE",5);//私聊窗口显示的行数
define("MAX",50);//聊天室人数限制
define("MAXTIME",600000);//最大不发言时间 , 单位是毫秒
define("WELCOME","font color=blue欢迎光临".CHAT_NAME." , 请遵守聊天室规则,不要恶意刷新 , 不要使用不文明用语 。/font");//欢迎语
?
2,公共函数文件
(1)chklogin()函数检查用户昵称是否重复 。参数$user是登录用户的昵称 。当函数返回值为True时,昵称不可用;返回值为False时,昵称可用 。
复制代码代码如下:
function chklogin($file,$user){
$boo = false;
if(file_exists($file)){
$userarr = file($file);
/* 判断昵称是否重复 */
foreach($userarr as $value){ //判断昵称是否重复
$tmparr = explode('#',$value); //使用“#”作为分隔符来拆分字符串
if($user == $tmparr[0]){ //如果用户数组中包含此用户
$boo = true;
break;
}
}
}
return $boo;
}
(2)addlogin()函数将登录的用户昵称写入文件中,保存格式为:昵称#IP#性别,参数$file是保存的文件地址,$user是用户昵称,$ip是登陆IP , $sex表示用户性别 。
复制代码代码如下:
function addlogin($file,$user,$ip,$sex){
$tmp = $user.'#'.$ip.'#'.$sex.chr(13).chr(10);//chr(13) 是一个回车,Chr(10) 是个换行符,chr(32) 是一个空格符
$fp = fopen($file,'a');//写入方式在文件末尾追加信息
$boo = fwrite($fp,$tmp);
fclose($fp);
return $boo;
}
(3)storeuser()函数的作用是将用户信息存为一个数组 。格式为“用户名,用户性别” , 参数$file是用户列表文件 。代码如下:
复制代码代码如下:
function storeuser($file){
$tmparr = file($file);//将文件内容写入数组
$userarr = array();//创建数组
foreach($tmparr as $value){//循环输出数组内容
$tmparr = explode('#',$value); //使用#拆分字符串
$userarr[] = $tmparr[0].','.$tmparr[2];//将用户名和用户性别保存到新数组中
}
return $userarr;
}
(4)addmess()函数将发言内容写入文件中 。参数$file是保存的文件地址,$mess是要保存的内容
复制代码代码如下:
function addmess($file,$mess){
$fp = fopen($file,'a');//以追加的形式打开文件
$boo = fwrite($fp,$mess.chr(13).chr(10)); //将信息写入文件中
fclose($fp); //关闭文件
return boo;
}
(5)deluser()函数的作用是删掉用户 。参数$file是保存的文件地址,$user是要删除的用户
复制代码代码如下:
function deluser($file,$user){
$tmparr = file($file);//将文件内容写入数组
$rearr = array(); //创建数组
foreach($tmparr as $value){//循环输出数组内容
$tmp = explode('#',$value);//使用#拆分字符串
if($tmp[0] != $user){ //如果变量中的用户名和当前用户不相等
$rearr[] = $value; //将该用户信息保存到新数组中
}
}
$fp = fopen($file,'w '); //以只写的方式打开文件
foreach($rearr as $value){ //循环数组
fwrite($fp,$value);//写入数组内容
}
fclose($fp); //关闭文件
}
(6)getRows()函数的作用是返回文件的行数,参数$file是文件名
复制代码代码如下:
function getRows($file){
if(file_exists($file)){//如果文件存在
$fl = file($file);//将文件按行写入数组
return count($fl);//求出数组长度并返回
}else{
return 0;//如果文件不存在,返回0
关于php数据库会员在线聊天和php数据库会员在线聊天怎么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 抖音直播无线同步电脑音频,抖音直播如何连接电脑音乐
- 台式电脑显卡长什么样,笔记本电脑显卡型号怎么选
- 篮球游戏学动作,篮球游戏运动
- 如何洞察与抓住商机pdf,如何洞察商机进行创新实践
- go语言要什么软件 go语言开发的软件
- 如何快速提高电商营销效率,如何快速提高电商营销效率的方法
- 创业电影网站制作,国产电影创业
- 鸿蒙os2优化,鸿蒙优化app
- php二维数组导入数据 php二维数组变成一维数组