聊天室可以采用完全自由的方式運(yùn)行,你可以隨意輸入呢稱,不用密碼,不保存你的聊天狀態(tài),優(yōu)點(diǎn)是:自由,非常適合于游客!另外一個(gè)方法是注冊(cè)聊天室,每個(gè)進(jìn)入聊天室的人都要輸入自己的用戶名和密碼才能進(jìn)入!優(yōu)點(diǎn):充分體現(xiàn)個(gè)性,非常適合于老朋友,他們的呢稱不會(huì)被人惡意侵占使用.我的聊天室使用注冊(cè)方法!
注冊(cè)通常采用2種方法:
1、先注冊(cè)然后進(jìn)入聊天
2、自動(dòng)注冊(cè)
然后在里面修改自己的資料!我采用第2種方法!!每個(gè)新進(jìn)入的聊友的用戶名會(huì)被自動(dòng)保存到注冊(cè)到數(shù)據(jù)庫(kù)內(nèi),下次登陸必須輸入準(zhǔn)確的密碼才能進(jìn)入!
下面是判斷部分!本程序使用文本數(shù)據(jù)庫(kù)!
- //$useronline為在線人的數(shù)據(jù)文件名稱
- //$useronlinelock為在線人的鎖定標(biāo)志
- //$register為已經(jīng)注冊(cè)的數(shù)據(jù)文件名稱
- //$registerlock為注冊(cè)文件的鎖定標(biāo)志
- //$split為分隔符
- //登陸參數(shù) enter
- if($action == "enter")
- {
- //當(dāng)前時(shí)間秒數(shù)
- $timecurrent = date("U");
- //鎖定在線人數(shù)文件,防止同時(shí)修改同一個(gè)文件
- while( file_exists($useronlinelock))
- {
- if(!file_exists($useronlinelock))
- {
- break;
- }
- //創(chuàng)建臨時(shí)文件
- fclose(fopen($useronlinelock,"w"));
- //讀入在線用戶和已經(jīng)注冊(cè)用戶的信息:密碼,昵稱,更新時(shí)間
- $useronline = file($useronline);
- $register = file($register);
- //用于判斷登陸是否成功的標(biāo)志
- $namesign=0;
- //判斷用戶名,密碼的錯(cuò)誤,用戶名不允許為空,不允許超過(guò)10個(gè)字符,密碼不允許超過(guò)20個(gè)字符
- if(($name =="") || (strlen($name) > 10) || (strlen($pass) > 20) )
- {
- PRint("沒(méi)有昵稱或密碼過(guò)長(zhǎng)");
- //登陸失敗
- $namesign=1;
- //刪除臨時(shí)文件
- unlink($useronlinelock);
- }
- else
- {
- //查找是否已經(jīng)有人注冊(cè)或者密碼錯(cuò)誤
- $foundsign=0;
- for($i=0;$i<count($register);$i++)
- {
- //分割
- $tempregister = split($split,$register[$i],99);
- //找到已經(jīng)注冊(cè)的用戶名
- if( $name == $tempregister[0] )
- {
- //已經(jīng)找到標(biāo)志
- $foundsign=1;
- //密碼正確嗎
- if($pass != $tempregister[1])
- print("密碼錯(cuò)了!");
- //登陸失敗
- $namesign=1;
- unlink($useronlinelock);
- break;
- }
- else
- {
- //老用戶登陸成功
- $namesign=0;
- break;
- }
- }
- }
- //如果沒(méi)有找到這個(gè)用戶名,那么就自動(dòng)注冊(cè)
- if(!$foundsign)
- {
- //保存用戶名和密碼
- $handle = fopen($register,"a");
- fputs($handle,"$name$split$pass$splitrn");
- fclose($handle);
- //新用戶登陸成功
- $namesign=0;
- }
- }
- }
- if(!$namesign)
- {
- //更新在線人的名單
- $useronlinehandle = fopen($useronline,"w");
- //判斷是否已經(jīng)在里面,只是刷新頁(yè)面
- $updatesign = 0;
- for($i=0;$i<count($useronline);$i++)
- {
- $usertemp=split($split,chop($useronline[$i]),99);
- if($name == $usertemp[0])
- {
- //更新標(biāo)志
- $updatesign = 1;
- fputs($useronlinehandle,$useronline[$i]);
- }
- else
- {
- fputs($useronlinehandle,$useronline[$i]);
- }
- }
- //如果沒(méi)有在里面,則增加到里面
- if(!$updatesign)
- fputs($useronlinehandle,"$name$split$level$split$pass$split$timecurren
- trn");
- fclose($useronlinehandle);
- //去掉縮定
- unlink($useronlinelock);
- //登陸成功
- }
到這里,用戶的驗(yàn)證已經(jīng)完成,聊友已經(jīng)合法的進(jìn)入了聊天室,攜帶者呢稱和密碼
新聞熱點(diǎn)
疑難解答