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('SELECTCOUNT(*)as`players`FROM{{table}}WHERE1','users',true); $LastPlayer=doquery('SELECT`username`FROM{{table}}ORDERBY`register_time`DESC','users',true); $parse['last_user']=$LastPlayer['username']; $PlayersOnline=doquery("SELECTCOUNT(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); //Testpourprendrelenombretotaldejoueuretlenombredejoueursconnect閟 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()函数提示,前面也讲过。