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 相关文章推荐
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 PHP
PHP 基本语法格式
Dec 15 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
分享10段PHP常用代码
Nov 11 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
Symfony2 session用法实例分析
Feb 04 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
Apr 24 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 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计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python能否java成为主流语言吗
2020/06/22 Python
Python读写压缩文件的方法
2020/07/30 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
"序列点" 是什么
2016/07/29 面试题
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
电子商务专业求职信
2014/03/08 职场文书
倡导文明标语
2014/06/16 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
原告离婚代理词
2015/05/23 职场文书
会计入职心得体会
2016/01/22 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
总结几个非常实用的Python库
2021/06/26 Python