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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
PHP 危险函数解释 分析
Apr 22 PHP
apache mysql php 源码编译使用方法
May 03 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
laravel5.6中的外键约束示例
Oct 23 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
详解JavaScript树结构
2017/01/09 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python群发邮件实例代码
2014/01/03 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
Flask-WTF表单的使用方法
2019/07/12 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
python有几个版本
2020/06/17 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
医护人员英文求职信范文
2013/11/26 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
写自荐信三大法宝
2014/01/24 职场文书
导师工作推荐信范文
2014/05/17 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
三好学生竞选稿
2015/11/21 职场文书
趣味运动会标语口号
2015/12/26 职场文书
Hive日期格式转换方法总结
2022/06/25 数据库
Go语言测试库testify使用学习
2022/07/23 Golang