一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(三)

四、 用戶注冊(cè)(reg.php

在看用戶注冊(cè)之流程之前,我把表的用途做個(gè)簡(jiǎn)單說(shuō)明,現(xiàn)在只是大概的說(shuō)明,后面我們?cè)僮屑?xì)了解,大家可以記下這個(gè)說(shuō)明。

game_aks          聯(lián)合攻擊組記錄表,攻擊完成刪除數(shù)據(jù)game_alliance      聯(lián)盟表game_annonce      公告表,基本無(wú)用game_banned        Ban玩家表game_buddy        好友表game_chat          聊天記錄表game_config        系統(tǒng)參數(shù)表game_errors        錯(cuò)誤日志表game_fleets        艦隊(duì)活動(dòng)記錄表,活動(dòng)完成刪除數(shù)據(jù)game_galaxy        星系表game_iraks        星際導(dǎo)彈活動(dòng)表,活動(dòng)完成刪除數(shù)據(jù)game_lunas        月球列表game_messages      消息表game_notes        筆記表game_plaNETs      星球列表,包括月球game_rw            戰(zhàn)報(bào)表game_statpoints    積分表game_users        用戶表


現(xiàn)在我們開(kāi)始用戶注冊(cè)流程,一開(kāi)始又可以看到定義了兩個(gè)常量,

define('INSIDE' , true);define('INSTALL' , false); 

INSIDE是用來(lái)防止攻擊的,值為true;INSTALL是用來(lái)記錄現(xiàn)在是否處于安裝游戲的進(jìn)程中,值為false。接下來(lái)又是Include兩個(gè)文件,extension.inc和common.php;然后又是load語(yǔ)言文件reg.mo。在后面的章節(jié)里,我不再介紹了前面這段代碼,大家已經(jīng)明了了。


下面聲明了兩個(gè)函數(shù),用來(lái)發(fā)送注冊(cè)成功后的信息,包括用戶名和密碼等。

function sendpassemail($emailaddress, $username, $password)function mymail($to, $title, $body, $from = '') 


現(xiàn)在介紹Xnova源碼里面經(jīng)常用到的一個(gè)結(jié)構(gòu),下面是偽代碼說(shuō)明,

if ($_POST) { //如果用戶有輸入//這里是有用戶輸入后執(zhí)行過(guò)程}else{//這里是無(wú)用戶輸入后的執(zhí)行過(guò)程,包括頁(yè)面第一次顯示的時(shí)候}


我們看用戶注冊(cè)流程,為了說(shuō)明前面的結(jié)構(gòu),特意貼了代碼。和前面我們講過(guò)的一樣,先gettemplate文件,然后parse出來(lái)并顯示頁(yè)面。

if ($_POST) { //代碼略} else { $parse = $lang; $parse['servername'] = $game_config['game_name']; $page = parsetemplate(gettemplate('registry_form'), $parse); display ($page, $lang['registry'], false);} 

下面看用戶輸入信息后的流程,一堆的if都是判斷用戶輸入的信息是否合法,并用$errors變量記錄錯(cuò)誤的數(shù)量,$errorlist變量記錄錯(cuò)誤的消息。如果$errors不為零就輸出錯(cuò)誤信息;如果沒(méi)有錯(cuò)誤,就進(jìn)入下面的流程:

1. 檢查用戶名是否有非法字符

2. 檢查Email是否有非法字符

3. 檢查星球名是否有非法字符

4. 加密用戶的密碼,md5

5. 往表users中INSERT用戶信息

6. 取得剛剛插入生成的用戶ID號(hào)備用

7. 一大段代碼功能,找一個(gè)空的星球坐標(biāo)給這個(gè)用戶作為母星,并使用函數(shù)CreateOnePlaNETRecord()創(chuàng)建星球,這里要使用三個(gè)系統(tǒng)參數(shù)LastSettedGalaxyPos、LastSettedSystemPos、LastSettedPlaNETPos,看命名就應(yīng)該清楚,分別是最后星系、最后太陽(yáng)系、最后行星位置

8. 更新users表中的星球ID為剛剛生成的星球ID

9. 向這個(gè)玩家發(fā)送歡迎信息

10. 向這個(gè)玩家發(fā)送注冊(cè)信息郵件

11. 顯示注冊(cè)成功頁(yè)面,注冊(cè)結(jié)束

以上流程,我們都可以找到對(duì)應(yīng)的代碼,代碼難度不大,所以沒(méi)有列出來(lái)。函數(shù)CreateOnePlaNETRecord()以后詳細(xì)介紹,現(xiàn)在說(shuō)了反而頭大,函數(shù)SendSimpleMessage()我們現(xiàn)在看一下,聲明在SendSimpleMessage.php文件中。

function SendSimpleMessage ( $Owner, $Sender, $Time, $Type, $From, $Subject, $Message) { global $messfields; if ($Time == '') { $Time = time(); } if ($Sender == null){ $Sender = 0; } $QryInsertMessage = "INSERT INTO {{table}} SET "; $QryInsertMessage .= "'message_owner' = ". $Owner .", "; $QryInsertMessage .= "'message_sender' = ". $Sender .", "; $QryInsertMessage .= "'message_time' = " . $Time . ", "; $QryInsertMessage .= "'message_type' = ". $Type .", "; $QryInsertMessage .= "'message_from' = '". addslashes( $From ) ."', "; $QryInsertMessage .= "'message_subject' = '". addslashes( $Subject ) ."', "; $QryInsertMessage .= "'message_text' = '". addslashes( $Message ) ."';"; doquery( $QryInsertMessage, 'messages'); $QryUpdateUser = "UPDATE {{table}} SET "; $QryUpdateUser .= "'".$messfields[$Type]."' = '".$messfields[$Type]."' + 1, "; $QryUpdateUser .= "'".$messfields[100]."' = '".$messfields[100]."' + 1 "; $QryUpdateUser .= "WHERE "; $QryUpdateUser .= "'id' = '". $Owner ."';"; doquery( $QryUpdateUser, 'users');} 

函數(shù)的功能是往messages表中插入詳細(xì)消息,并更新users表的消息數(shù)量,很明了,呵呵。另外一個(gè)函數(shù)message()的功能和display()基本相同,就不詳細(xì)寫(xiě)了,自己看下吧。至此,用戶注冊(cè)流程就分析完了。

php技術(shù)PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(三),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久热99这里只有精品视频6 | 国产91精品久久久久久久 | 精品一久久| 99久在线精品99re6视频 | 9久9久女女热精品视频免费观看 | 国产成人免费 | 九九全国免费视频 | 国产做受视频激情播放 | 天天舔天天色 | 色多多成视频人在线观看 | 美女精品视频 | 久久国产精品伦理 | 最近中文字幕完先锋资源 | 国产免费美女视频 | 中文字幕一区视频 | 免费激情视频网站 | 伊人色综合一区二区三区 | 成人午夜在线视频 | 亚洲人成图片欧美人成图片 | 久久丝袜精品中文字幕 | 精品精品 | 91最新免费观看在线 | 精品国产第一国产综合精品gif | 日本aⅴ日本高清视频影片www | 日本精品久久久久久久久免费 | 国产精品一区二区三 | 精品国产成人 | 最新国产在线视频 | 国产精品视频一区二区亚瑟 | 亚洲网站在线 | 视频一区二区三区在线 | 国产第2页 | 在线播放真实国产乱子伦 | 国产高清a | 精品久久久久久久久久久久久久久 | 午夜黄色网 | sihu国产午夜精品一区二区三区 | 丁香激情六月 | 欧美成人三级网站在线观看 | 国产精品酒店视频 | 一区二区三区日韩精品 |