因?yàn)檫@兩個(gè)常量在接下來的代碼中總是用到,所以在這里先說明下。INSIDE是用來防止 " /> 日韩精品欧美亚洲高清有无,131美女爱做视频午夜剧场,AV久久久囯产果冻传媒

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

三、 安裝(install/index.php

這個(gè)文件是安裝頁面,一開始就可以看到定義了兩個(gè)常量:

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


因?yàn)檫@兩個(gè)常量在接下來的代碼中總是用到,所以在這里先說明下。INSIDE是用來防止攻擊的;INSTALL是用來記錄現(xiàn)在是否處于安裝游戲的進(jìn)程中。

接下來Include兩個(gè)文件:extension.inc和common,這兩個(gè)都是正宗的php文件。首先extension.inc里面加入了防止攻擊的代碼,并且把php文件的擴(kuò)展名隱藏起來,就是這句$phpEx = “php”。那么'common.'.$phpEx其實(shí)就是common.php了。

includeLang('install/install'); 


這句是load語言文件,includeLang()函數(shù)聲明在includes/unlocalised.php文件中,這個(gè)文件中還有很多的小函數(shù)。

function includeLang ($filename, $ext = '.mo') { global $xnova_root_path, $lang, $user; if ($user['lang'] != '') { $SelLanguage = $user['lang']; } else { $SelLanguage = DEFAULT_LANG; } include ($xnova_root_path . "language/". $SelLanguage ."/". $filename.$ext);} 

函數(shù)的功能是個(gè)根據(jù)用戶的所用的語種 include 相應(yīng)的代碼,XnovaTC3版本里面是支持每個(gè)用戶使用不同的語言的,我使用的版本無此功能。

繼續(xù)往下,取得當(dāng)前要顯示的頁面內(nèi)容,就是到了安裝步驟幾了;然后進(jìn)入一個(gè)大的switch。在這之前有一個(gè)這樣的語句:

$MainTPL = gettemplate('install/ins_body'); 

Gettemplate()函數(shù)同樣聲明在includes/unlocalised.php文件中,

function gettemplate ($templatename) { global $xnova_root_path; $filename = $xnova_root_path . TEMPLATE_DIR . TEMPLATE_NAME . '/' . $templatename . ".tpl"; return ReadFromFile($filename);} 

函數(shù)的功能是取得一個(gè)指定文件的內(nèi)容,這個(gè)指定的文件是這樣構(gòu)成的:

$ugamela_root_path . TEMPLATE_DIR . TEMPLATE_NAME . '/' . $templatename . ".tpl"; 

TEMPLATE_DIR的值是'templates/',TEMPLATE_NAME的值是'OpenGame',那么前面的 gettemplate

('install/ins_body')就是取得templates/OpenGame/install/ins_body.tpl文件中的內(nèi)容。這樣的函數(shù)還有幾個(gè),大家都要記住,后面會經(jīng)常用到。

case ‘intro':

一看就應(yīng)該知道,是說明介紹的頁面,不過里面有個(gè)我們首次見到的函數(shù)parsetemplate(),聲明在includes/unlocalised.php文件中,

function parsetemplate ($template, $array) {return preg_replace('#/{([a-z0-9/-_]*?)/}#Ssie', '( ( isset($array[/'/1/']) ) ? $array[/'/1/'] : /'/' );', $template);} 

函數(shù)的功能是利用正則表達(dá)式,對$template中的特定字符串(就是由 {} 括起來的內(nèi)容),用$array的值進(jìn)行替換,來實(shí)現(xiàn)多語言功能。

case ‘ins':

這個(gè)分枝是具體安裝過程,分成4個(gè)步驟頁面,由$page變量控制顯示哪一個(gè)頁面。

1. 當(dāng)$page值為1時(shí),先進(jìn)行一些錯(cuò)誤判斷;如果沒有錯(cuò)誤,就讀取 templates/install/ins_form.tpl模板,parse出并構(gòu)成有服務(wù)器地址、數(shù)據(jù)庫名、表名前綴、用戶名和密碼的頁面。安裝者輸入數(shù)據(jù)后,點(diǎn)擊install進(jìn)入下一步的流程。

2. 當(dāng)$page值為2時(shí),取得第一步輸入的數(shù)據(jù),并嘗試連接數(shù)據(jù)庫;如果連接不上數(shù)據(jù)庫則提示錯(cuò)誤;連上數(shù)據(jù)庫則繼續(xù)后續(xù)的過程,包括:在config.php文件中寫入數(shù)據(jù)庫連接信息;根據(jù)includes/databaseinfos.php文件內(nèi)容創(chuàng)建表結(jié)構(gòu)。

3. 當(dāng)$page值為3時(shí),判斷上一步是否發(fā)生錯(cuò)誤,沒有發(fā)生則顯示一些信息并parse出創(chuàng)建管理員帳號的表單,進(jìn)入下一個(gè)流程。

4. 當(dāng)$page值為4時(shí),取得上一步輸入的數(shù)據(jù),有帳號、密碼、email等;一些判斷之后創(chuàng)建這個(gè)管理員帳號,創(chuàng)建的過程以后注冊的時(shí)候再詳細(xì)說明。

至此,安裝主要過程就結(jié)束了,主要步驟就是這些,代碼也不難理解。最后還有一個(gè)函數(shù)要講解下,就是display(),聲明在includes/function.php文件中,

function display ($page, $title = '', $topnav = true, $metatags = '', $AdminPage = false) {global $link, $game_config, $debug, $user, $plaNETrow;if (!$AdminPage) {$DisplayPage = StdUserHeader ($title, $metatags);} else {$DisplayPage = AdminUserHeader ($title, $metatags);}if ($topnav) {$DisplayPage .= ShowTopNavigationBar( $user, $plaNETrow );}$DisplayPage .= "<center>/n". $page ."/n</center>/n";// Affichage du Debug si necessaireif ($user['authlevel'] == 1 || $user['authlevel'] == 3) {if ($game_config['debug'] == 1) $debug->echo_log();}$DisplayPage .= StdFooter();if (isset($link)) {@mysql_close($link);}echo $DisplayPage;die();} 

函數(shù)的功能是顯示普通用戶頁眉和管理員頁眉的區(qū)分,是否顯示頂部的信息欄等,此函數(shù)中還調(diào)用了其他函數(shù),如:StdUserHeader()、AdminUserHeader()、ShowTopNavigationBar()和 StdFooter()都不復(fù)雜,其實(shí)現(xiàn)都是前面介紹過的 parsetempalte()和gettemplate(),這里就不詳細(xì)說明了。

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

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

主站蜘蛛池模板: 女人张开腿让男人桶爽免 | 添加一点爱与你电视剧免费观看 | 黑人巨大两根一起挤进欧美 | 麻豆产精品一二三产区区 | 亚洲野狼综合网站 | 乱h好大噗嗤噗嗤烂了 | 手机免费毛片 | 一品道门在线视频 | 超碰免费视频公开97 | 91香蕉福利一区二区三区 | china年轻小帅脸直播飞机 | 果冻传媒完整免费网站在线观看 | 精品国产免费观看久久久 | 国产乱码一区二区三区 | 免费观看99热只有精品 | 无人区乱码1区2区3区网站 | 九九热精品视频在线观看 | 久久久99精品成人片中文 | 最新无码国产在线视频 | 在线免费视频国产 | 大胆国模一区二区三区伊人 | 九九这里有精品 | 黑人干亚洲人 | 快穿做妓女好爽H | 白丝美女被狂躁免费漫画 | 97精品伊人久久大香线蕉app | 亚洲精品一本之道高清乱码 | gratis videos欧美最新 | 2020美女视频黄频大全视频 | 亚洲日韩在线观看 | 国产亚洲欧美高清在线 | 亚洲精品高清中文字幕完整版 | 欧美黑人巨大性极品hd欧 | 性欧美FREE少妇XXX | 极品少妇高潮XXXXX | 国产精品亚洲二线在线播放 | 日日干夜夜爽 | a级销魂美女| 国产99视频在线观看 | 国产亚洲视频精彩在线播放 | 亚洲中文久久精品AV无码 |