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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
[原创]效率较高的php下读取文本文件的代码
Jul 02 PHP
PHP 数组遍历顺序理解
Sep 09 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 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函数学习之PHP函数点评
2012/07/05 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
php中switch语句用法详解
2015/08/17 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
JavaScript闭包的简单应用
2017/09/01 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
Python fileinput模块使用介绍
2014/11/30 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
简述数据库的设计过程
2015/06/22 面试题
医学院护理专业应届生求职信
2013/11/12 职场文书
2015毕业寄语大全
2015/02/26 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
检讨书范文
2019/04/16 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
Python中的datetime包与time包包和模块详情
2022/02/28 Python