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 相关文章推荐
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
定义php常量的详解
Jun 09 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
php微信公众号开发模式详解
Nov 28 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 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获取随机数字和字母的方法详解
2013/06/06 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
一个JS翻页效果
2007/07/23 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
JavaScript canvas实现文字时钟
2021/01/10 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
介绍一下你对SOA的认识
2016/04/24 面试题
工程师岗位职责
2013/11/08 职场文书
材料采购员岗位职责
2013/12/17 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
软件项目实施计划书
2014/05/02 职场文书
入职担保书范文
2014/05/21 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
学校安全管理制度
2015/08/06 职场文书
文明礼仪主题班会
2015/08/13 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android