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类
Apr 09 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP实现图片压缩
Sep 09 PHP
laravel实现于语言包的完美切换方法
Sep 29 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来处理多个提交任务
2008/05/08 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
动态表格Table类的实现
2009/08/26 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
python常用知识梳理(必看篇)
2017/03/23 Python
Python实现全排列的打印
2018/08/18 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
python函数超时自动退出的实操方法
2020/12/28 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
论文评语大全
2014/04/29 职场文书
需求分析说明书
2014/05/09 职场文书
关于童年的读书笔记
2015/06/26 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书