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 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
深入理解PHP之require/include顺序 推荐
Jan 02 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
Jun 24 PHP
php绘制一条直线的方法
Jan 24 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
Python3运算符常见用法分析
2020/02/14 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
Python实现壁纸下载与轮换
2020/10/19 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
static关键字的用法
2013/10/07 面试题
股份转让协议书
2014/04/12 职场文书
诚信贷款承诺书
2014/05/30 职场文书
检讨书格式
2015/01/23 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js