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 相关文章推荐
phpmyadmin导入(import)文件限制的解决办法
Dec 11 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
PHP实现微信提现功能
Sep 30 PHP
php面试实现反射注入的详细方法
Sep 30 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 处理图片的类实现代码
2009/10/23 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
Python流程控制语句的深入讲解
2020/06/15 Python
工程概预算专业毕业生求职信
2013/10/04 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
新文化运动的基本口号
2014/06/21 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
宝塔更新Python及Flask项目的部署
2022/04/11 Python