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


Posted in PHP onJune 23, 2014

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

PHP 相关文章推荐
PHP中文汉字验证码
Apr 08 PHP
php自动适应范围的分页代码
Aug 05 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
关于PHP实现异步操作的研究
Feb 03 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
php编写的一个E-mail验证类
Mar 25 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
万能的php分页类
Jul 06 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
Jun 23 #PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 #PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 #PHP
ThinkPHP实现事务回滚示例代码
Jun 23 #PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 #PHP
You might like
php.ini 中文版
2006/10/28 PHP
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
php中file_exists函数使用详解
2015/05/08 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Python中内建函数的简单用法说明
2016/05/05 Python
Python在线运行代码助手
2016/07/15 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
传播学毕业生求职信
2013/10/11 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书