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和ACCESS写聊天室(十)
Oct 09 PHP
php 取得瑞年与平年的天数的代码
Aug 10 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
Sep 04 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP生成带有雪花背景的验证码
2006/10/09 PHP
php网站地图生成类示例
2014/01/13 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
Python的Tornado框架异步编程入门实例
2015/04/24 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
python实现多人聊天室
2020/03/31 Python
python制作填词游戏步骤详解
2019/05/05 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
openCV提取图像中的矩形区域
2020/07/21 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
python 常见的排序算法实现汇总
2020/08/21 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
高一数学教学反思
2014/02/07 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
小学中队委竞选稿
2015/11/20 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
JS实现简单九宫格抽奖
2022/06/28 Javascript