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 - Html Transfer Code
Oct 09 PHP
PHP学习 变量使用总结
Mar 24 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
laravel批量生成假数据的方法
Oct 09 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
php实现根据身份证获取精准年龄
Feb 26 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安装问题
2006/10/09 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
php实现记事本案例
2020/10/20 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Python struct.unpack
2008/09/06 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
Python 内置函数complex详解
2016/10/23 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
python  logging日志打印过程解析
2019/10/22 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
会计核算科岗位职责
2014/03/19 职场文书
初中成绩单评语
2014/12/29 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书