繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 聊天室技术(一) -- 大门

聊天室技术(一) -- 大门

2005-01-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:聊天室可以采用完全自由的方式运行,你可以随意输入呢称,不用密码,不保存你的聊天状态,优点是:自由,非常适合于游客!另外一个方法是注册聊天室,每个进入聊天室的人都要输入自己的用户名和密码才能进入!优点:充分体...
关键字:大门 聊天室 技术

聊天室可以采用完全自由的方式运行,你可以随意输入呢称,不用密码,不保存你的聊天状态,优点是:自由,非常适合于游客!另外一个方法是注册聊天室,每个进入聊天室的人都要输入自己的用户名和密码才能进入!优点:充分体现个性,非常适合于老朋友,他们的呢称不会被人恶意侵占使用.我的聊天室使用注册方法!

注册通常采用2种方法:1,先注册然后进入聊天;2,自动注册,然后在里面修改自己的资料!我采用第2种方法!!每个新进入的聊友的用户名会被自动保存到注册到数据库内,下次登陆必须输入准确的密码才能进入!

下面是判断部分!本程序使用文本数据库!

//$useronline为在线人的数据文件名称

//$useronlinelock为在线人的锁定标志

//$register为已经注册的数据文件名称

//$registerlock为注册文件的锁定标志

//$split为分隔符

//登陆参数 enter

if($action == "enter")

{

//当前时间秒数

$timecurrent = date("U");

//锁定在线人数文件,防止同时修改同一个文件

while( file_exists($useronlinelock))

{

if(!file_exists($useronlinelock))

{

break;

}

}

//创建临时文件

fclose(fopen($useronlinelock,"w"));

//读入在线用户和已经注册用户的信息:密码,昵称,更新时间

$useronline = file($useronline);

$register = file($register);

//用于判断登陆是否成功的标志

$namesign=0;

//判断用户名,密码的错误,用户名不允许为空,不允许超过10个字符,密码不允许超过20个字符

if(($name =="") || (strlen($name) > 10) || (strlen($pass) > 20) )

{

print("没有昵称或密码过长");

//登陆失败

$namesign=1;

//删除临时文件

unlink($useronlinelock);

}

else

{

//查找是否已经有人注册或者密码错误

$foundsign=0;

for($i=0;$i

{

//分割

$tempregister = split($split,$register[$i],99);

//找到已经注册的用户名

if( $name == $tempregister[0] )

{

//已经找到标志

$foundsign=1;

//密码正确吗

if($pass != $tempregister[1])

print("密码错了!");

//登陆失败

$namesign=1;

unlink($useronlinelock);

break;

}

else

{

//老用户登陆成功

$namesign=0;

break;

}

}

}

//如果没有找到这个用户名,那么就自动注册

if(!$foundsign)

{

//保存用户名和密码

$handle = fopen($register,"a");

fputs($handle,"$name$split$pass$splitrn");

fclose($handle);

//新用户登陆成功

$namesign=0;

}

}

}

if(!$namesign)

{

//更新在线人的名单

$useronlinehandle = fopen($useronline,"w");

//判断是否已经在里面,只是刷新页面

$updatesign = 0;

for($i=0;$i

{

$usertemp=split($split,chop($useronline[$i]),99);

if($name == $usertemp[0])

{

//更新标志

$updatesign = 1;

fputs($useronlinehandle,$useronline[$i]);

}

else

{

fputs($useronlinehandle,$useronline[$i]);

}

}

//如果没有在里面,则增加到里面

if(!$updatesign)

fputs($useronlinehandle,"$name$split$level$split$pass$split$timecurren

trn");

fclose($useronlinehandle);

//去掉缩定

unlink($useronlinelock);

//登陆成功

}

到这里,用户的验证已经完成,聊友已经合法的进入了聊天室,携带者呢称和密码

原作者:howtodo

来源:PHP2000.com

责任编辑:admin
相关文章