PHP网页游戏学习之Xnova(ogame)源码解读(四)

 更新时间:2014年06月23日 17:43:05   作者:铁船长  
这篇文章主要介绍了PHP网页游戏Xnova(ogame)源码解读的用户登录页面,需要的朋友可以参考下

五、 用户登录(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下载大文件失败并限制下载速度的实例代码

    这篇文章主要介绍了PHP下载大文件失败并限制下载速度的实例代码,需要的朋友可以参考下
    2019-05-05
  • CI框架常用函数封装实例

    CI框架常用函数封装实例

    这篇文章主要介绍了CI框架常用函数封装,结合实例形式分析了CI框架常用的数据库查询、插入、删除、更新及debug调试等操作技巧,需要的朋友可以参考下
    2016-11-11
  • PHP中Closure类的使用方法及详解

    PHP中Closure类的使用方法及详解

    Closure类又被大家称之为匿名函数,在php5.3的时候引入的。顾名思义匿名函数就是没有定义名字的函数。本篇文章给大家介绍php中Closure类的使用及详解,需要的朋友可以参考下
    2015-10-10
  • PHP 将数组打乱 shuffle函数的用法及简单实例

    PHP 将数组打乱 shuffle函数的用法及简单实例

    下面小编就为大家带来一篇PHP 将数组打乱 shuffle函数的用法及简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 关于laravel 子查询 & join的使用

    关于laravel 子查询 & join的使用

    今天小编就为大家分享一篇关于laravel 子查询 & join的使用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP中使用smarty生成静态文件的例子

    PHP中使用smarty生成静态文件的例子

    这篇文章主要介绍了PHP中使用smarty生成静态文件的例子,需要的朋友可以参考下
    2014-04-04
  • Laravel中间件实现原理详解

    Laravel中间件实现原理详解

    这篇文章主要介绍了Laravel中间件实现原理,较为详细的分析了Laravel中间件的概念、原理及相关方法与使用技巧,需要的朋友可以参考下
    2016-10-10
  • php使用websocket示例详解

    php使用websocket示例详解

    这篇文章主要介绍了php使用websocket示例,需要的朋友可以参考下
    2014-03-03
  • Laravel框架DB facade数据库操作详解

    Laravel框架DB facade数据库操作详解

    这篇文章主要介绍了Laravel框架DB facade数据库操作,结合实例形式详细分析了laravel数据库基本创建、连接、增删改查等操作技巧,需要的朋友可以参考下
    2019-12-12
  • ThinkPHP分页实例

    ThinkPHP分页实例

    这篇文章主要介绍了ThinkPHP分页实例,详细讲述了ThinkPHP分页的完整实现步骤,包括模型层、视图层以及样式的代码,需要的朋友可以参考下
    2014-10-10

最新评论