Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 网页编程 / PHP / PHP网页游戏学习之Xnova(ogame)源码解读(四)

五、 用户登录(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()函数提示,前面也讲过。