程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP網頁游戲學習之Xnova(ogame)源碼解讀(四)

PHP網頁游戲學習之Xnova(ogame)源碼解讀(四)

編輯:PHP綜合

五、 用戶登錄(login.php)

在開始的時候,我們說過游戲的入口是index.php文件;我們已經安裝好了,自然轉向登錄流程,開始看。

前面照例是一段我們前進介紹過的代碼,我們就不再詳細講了;不同的是使用的語言文件是login.mo,還有一個LOGIN的常量。如下

define('INSIDE' , true);
define('INSTALL' , false);
define('LOGIN'  , true);
$InLogin = true;
$xnova_root_path = './';
include($xnova_root_path . 'extension.inc');
include($xnova_root_path . 'common.' . $phpEx);
includeLang('login'); 


接下來又是我們前面講過的結構,我們看初次進入的分支是下面代碼:

$parse         = $lang;
$Count         = doquery('SELECT COUNT(*) as `players` FROM {{table}} WHERE 1', 'users', true);
$LastPlayer      = doquery('SELECT `username` FROM {{table}} ORDER BY `register_time` DESC', 'users', true);
$parse['last_user']  = $LastPlayer['username'];
$PlayersOnline     = doquery("SELECT COUNT(DISTINCT(id)) as `onlinenow` FROM {{table}} WHERE `onlinetime` > '" . (time()-900) ."';", 'users', true);
$parse['online_users'] = $PlayersOnline['onlinenow'];
$parse['users_amount'] = $Count['players'];
$parse['servername']  = $game_config['game_name'];
$parse['forum_url']  = $game_config['forum_url'];
$parse['PasswordLost'] = $lang['PasswordLost'];
$page = parsetemplate(gettemplate('login_body'), $parse);
// Test pour prendre le nombre total de joueur et le nombre de joueurs connect閟
if ($_GET['ucount'] == 1) {
 $page = $PlayersOnline['onlinenow']."/".$Count['players'];
 die ( $page );
} else {
 display($page, $lang['Login']);
} 

主要是取得注冊用戶數、最後注冊用戶、當前在線數;並顯示登陸歡迎頁面,包括前面取得的這些用戶數據。
好了,現在用戶可以選擇注冊並轉向前面章節流程,或者是輸入用戶名和密碼轉入登錄流程。

1. 先根據輸入的用戶,從數據庫取得此用戶的記錄
2. 如果有記錄,則使用md5判斷用戶的密碼是否正確
3. 如果密碼正確,則看用戶是否選擇了記住密碼功能,後面用到
4. include數據庫配置文件config
5. Setcookie,裡面有用戶名、密碼等
6. 重定向到frames.php文件

其中前面的幾個判斷是否的話,就要出現一些錯誤提示信息,並結束登錄過程,使用的是message()函數提示,前面也講過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved