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执行速度全攻略(下)
Oct 09 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
php获取某个目录大小的代码
Sep 10 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
PHP中COOKIES使用示例
Jul 26 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
PHP实现浏览器中直接输出图片的方法示例
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
用php将任何格式视频转为flv的代码
2009/09/03 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
python读取Android permission文件
2013/11/01 Python
Python的time模块中的常用方法整理
2015/06/18 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
python僵尸进程产生的原因
2017/07/21 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Django 视图层(view)的使用
2018/11/09 Python
Python3多线程基础知识点
2019/02/19 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
市场营销策划方案
2014/06/11 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
民事答辩状范本
2015/05/21 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
Python+Tkinter制作专属图形化界面
2022/04/01 Python