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在线代理转向代码
May 05 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
Yii2单元测试用法示例
Nov 12 PHP
php curl常用的5个经典例子
Jan 20 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 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新建文件自动编号的思路与实现
2011/06/27 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
JS实现页面打印功能
2017/03/16 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
python双向链表原理与实现方法详解
2019/12/03 Python
如何基于python实现脚本加密
2019/12/28 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
英语国培研修感言
2014/02/13 职场文书
2016年春节问候语
2015/11/11 职场文书
2016公司新年问候语
2015/11/11 职场文书
小学数学国培研修日志
2015/11/13 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
python字典的元素访问实例详解
2021/07/21 Python
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers