mirror of
https://e.coding.net/circlecloud/McAccount.git
synced 2025-09-05 07:27:21 +00:00
add server status and fix some bug...
Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
8
Controller/server_status.php
Normal file
8
Controller/server_status.php
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
class server_status extends AmysqlController {
|
||||||
|
function getinfo() {
|
||||||
|
$info = $this -> _model('server_model') -> QueryMinecraft( $_REQUEST ['ip'], $_REQUEST ['port'] );
|
||||||
|
return $info;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -4,7 +4,9 @@ class user_current extends AmysqlController
|
|||||||
function current()
|
function current()
|
||||||
{
|
{
|
||||||
$money = $this -> _model('current_model') -> money_current($_REQUEST['user']);
|
$money = $this -> _model('current_model') -> money_current($_REQUEST['user']);
|
||||||
|
if(!$money){
|
||||||
|
JsonError( "未查询到账号信息!" );
|
||||||
|
}
|
||||||
JsonSuccess( $money );
|
JsonSuccess( $money );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class current_model extends AmysqlModel {
|
class current_model extends AmysqlModel {
|
||||||
function money_current($user) {
|
function money_current($user) {
|
||||||
$sql = "SELECT * FROM `iconomy` WHERE `username` = '" . $user;
|
$sql = "SELECT * FROM `iconomy` WHERE `username` = '" . $user . "'";
|
||||||
return $this->_all ( $sql );
|
return $this->_row ( $sql );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
67
Model/server_model.php
Normal file
67
Model/server_model.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
class server_model extends AmysqlModel {
|
||||||
|
function QueryMinecraft($IP, $Port = 25565, $Timeout = 2) {
|
||||||
|
$Socket = Socket_Create ( AF_INET, SOCK_STREAM, SOL_TCP );
|
||||||
|
|
||||||
|
Socket_Set_Option ( $Socket, SOL_SOCKET, SO_SNDTIMEO, array (
|
||||||
|
'sec' => ( int ) $Timeout,
|
||||||
|
'usec' => 0
|
||||||
|
) );
|
||||||
|
Socket_Set_Option ( $Socket, SOL_SOCKET, SO_RCVTIMEO, array (
|
||||||
|
'sec' => ( int ) $Timeout,
|
||||||
|
'usec' => 0
|
||||||
|
) );
|
||||||
|
|
||||||
|
if ($Socket === FALSE || @Socket_Connect ( $Socket, $IP, ( int ) $Port ) === FALSE) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
Socket_Send ( $Socket, "\xFE\x01", 2, 0 );
|
||||||
|
// Socket_Send ( $Socket, "\x0F\0x00\x04\x09\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x63\xDD\x01", 16, 0);
|
||||||
|
// Socket_Send ( $Socket, "\x01\x00", 2, 0 );
|
||||||
|
$Len = Socket_Recv ( $Socket, $Data, 1024, 0 );
|
||||||
|
Socket_Close ( $Socket );
|
||||||
|
|
||||||
|
// return FALSE;
|
||||||
|
// if ($Len < 4 || $Data [0] !== "\xFF") {
|
||||||
|
// return FALSE;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// $Data = SubStr ( $Data, 3 );
|
||||||
|
echo($Len);
|
||||||
|
echo("</p>");
|
||||||
|
|
||||||
|
// $Data = iconv( 'UTF-16BE', 'UTF-8', $Data );
|
||||||
|
print_r($Data);
|
||||||
|
echo("</p>");
|
||||||
|
$zData = Explode ( "\x00", $Data );
|
||||||
|
echo(count($zData));
|
||||||
|
echo("</p>");
|
||||||
|
print_r($zData);
|
||||||
|
echo("</p>");
|
||||||
|
$aData = Explode ( "\xA7", $Data );
|
||||||
|
echo(count($aData));
|
||||||
|
echo("</p>");
|
||||||
|
print_r($aData);
|
||||||
|
// if ($Data [1] === "\xA7" && $Data [2] === "\x31") {
|
||||||
|
// $Data = Explode ( "\x00", $Data );
|
||||||
|
// var_dump($Data [3]);
|
||||||
|
// return Array (
|
||||||
|
// 'HostName' => $Data [3],
|
||||||
|
// 'Players' => IntVal ( $Data [4] ),
|
||||||
|
// 'MaxPlayers' => IntVal ( $Data [5] ),
|
||||||
|
// 'Protocol' => IntVal ( $Data [1] ),
|
||||||
|
// 'Version' => $Data [2]
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// $Data = Explode ( "\xA7", $Data );
|
||||||
|
// return Array (
|
||||||
|
// 'HostName' => SubStr ( $Data [0], 0, - 1 ),
|
||||||
|
// 'Players' => isset ( $Data [1] ) ? IntVal ( $Data [1] ) : 0,
|
||||||
|
// 'MaxPlayers' => isset ( $Data [2] ) ? IntVal ( $Data [2] ) : 0,
|
||||||
|
// 'Protocol' => 0,
|
||||||
|
// 'Version' => '1.3'
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
}
|
@ -3,27 +3,41 @@
|
|||||||
<script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
|
<script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
|
||||||
<script src="http://apps.bdimg.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
<script src="http://apps.bdimg.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
<!-- navbar -->
|
||||||
<div class="navbar navbar-inverse">
|
<div class="navbar navbar-inverse">
|
||||||
<div class="navbar-inner">
|
<div class="navbar-inner">
|
||||||
<button type="button" class="btn btn-navbar visible-phone"
|
<a class="brand" href="<?=Url('index' , 'index')?>"><img
|
||||||
id="menu-toggler">
|
src="View/public/img/logo.png" /></a>
|
||||||
|
<button type="button" class="btn btn-navbar" data-toggle="collapse"
|
||||||
|
data-target=".nav-collapse">
|
||||||
<span class="icon-bar"></span> <span class="icon-bar"></span> <span
|
<span class="icon-bar"></span> <span class="icon-bar"></span> <span
|
||||||
class="icon-bar"></span>
|
class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
|
<div class="nav-collapse collapse">
|
||||||
|
<ul class="nav">
|
||||||
|
|
||||||
<a class="brand" href="index.php">Minecraft用户中心</a>
|
<li class="active"><a href="index.php"> <i class="icon-home"></i> <span>首页</span>
|
||||||
|
</a></li>
|
||||||
|
|
||||||
<ul class="nav pull-right">
|
<li><a href="<?=Url('index' , 'pass')?>"> <i class="icon-group"></i>
|
||||||
<li class="dropdown"><a href="#" class="dropdown-toggle hidden-phone"
|
<span>修改密码</span>
|
||||||
data-toggle="dropdown">
|
</a></li>
|
||||||
已登陆玩家:<?=$_SESSION['username']?>
|
<li><a href="<?=Url('index','mail')?>"> <i class="icon-picture"></i>
|
||||||
|
<span>验证邮箱</span>
|
||||||
|
</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav pull-right">
|
||||||
|
<li class="dropdown"><a href="#"
|
||||||
|
class="dropdown-toggle hidden-phone" data-toggle="dropdown">
|
||||||
|
已登陆玩家:<?=$_SESSION['username']?>
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="<?=Url('user_public','logout')?>"><i class="icon-off"></i>
|
||||||
<li><a href="<?=Url('user_public','logout')?>"><i class="icon-off"></i>
|
退出</a></li>
|
||||||
退出</a></li>
|
</ul></li>
|
||||||
</ul></li>
|
</ul>
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- end navbar -->
|
@ -44,7 +44,7 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
<!-- end navbar -->
|
<!-- end navbar -->
|
||||||
|
|
||||||
<!-- sidebar -->
|
<!-- sidebar -->
|
||||||
<? include 'left.php';?>
|
<?=load('left')?>
|
||||||
<!-- end sidebar -->
|
<!-- end sidebar -->
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,41 +43,8 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<!-- navbar -->
|
<!-- navbar -->
|
||||||
<div class="navbar navbar-inverse">
|
<?=load('header')?>
|
||||||
<div class="navbar-inner">
|
<!-- end navbar -->
|
||||||
<a class="brand" href="<?=Url('index' , 'index')?>"><img src="View/public/img/logo.png" /></a>
|
|
||||||
<button type="button" class="btn btn-navbar" data-toggle="collapse"
|
|
||||||
data-target=".nav-collapse">
|
|
||||||
<span class="icon-bar"></span> <span class="icon-bar"></span> <span
|
|
||||||
class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<div class="nav-collapse collapse">
|
|
||||||
<ul class="nav">
|
|
||||||
|
|
||||||
<li class="active"><a href="index.php"> <i class="icon-home"></i> <span>首页</span>
|
|
||||||
</a></li>
|
|
||||||
|
|
||||||
<li><a href="<?=Url('index' , 'pass')?>"> <i class="icon-group"></i>
|
|
||||||
<span>修改密码</span>
|
|
||||||
</a></li>
|
|
||||||
<li><a href="<?=Url('index','mail')?>"> <i class="icon-picture"></i>
|
|
||||||
<span>验证邮箱</span>
|
|
||||||
</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="nav pull-right">
|
|
||||||
<li class="dropdown"><a href="#" class="dropdown-toggle hidden-phone" data-toggle="dropdown">
|
|
||||||
已登陆玩家:<?=$_SESSION['username']?>
|
|
||||||
<b class="caret"></b>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="<?=Url('user_public','logout')?>"><i
|
|
||||||
class="icon-off"></i> 退出</a></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- end navbar -->
|
|
||||||
|
|
||||||
<!-- main container .wide-content is used for this layout without sidebar :) -->
|
<!-- main container .wide-content is used for this layout without sidebar :) -->
|
||||||
<div class="content wide-content col-xs-12 col-md-12 col-lg-12">
|
<div class="content wide-content col-xs-12 col-md-12 col-lg-12">
|
||||||
@ -95,19 +62,22 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
<h5 class="personal-title">Minecraft玩家信息</h5>
|
<h5 class="personal-title">Minecraft玩家信息</h5>
|
||||||
|
|
||||||
<form>
|
<form>
|
||||||
<div class="field-box">
|
<div class="field-box">
|
||||||
<label>游戏帐号:</label> <input class="span5 inline-input" id="user"
|
<label>游戏帐号:</label> <input class="span3 inline-input" id="user"
|
||||||
type="text" value="<?=$_SESSION['username']?>"
|
type="text" value="<?=$_SESSION['username']?>"
|
||||||
disabled="disabled" />
|
disabled="disabled" />
|
||||||
</div>
|
</div>
|
||||||
<div class="field-box">
|
<div class="field-box">
|
||||||
<label>邮箱地址:</label> <input class="span5 inline-input" id="mail"
|
<label>邮箱地址:</label> <input class="span3 inline-input" id="mail"
|
||||||
type="text" value="" disabled="disabled" /><p id="status"></p>
|
type="text" value="" disabled="disabled" /> <span id="status"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="field-box">
|
<div class="field-box">
|
||||||
<label>游戏币余额:</label> <input class="span5 inline-input" id="money"
|
<label>游戏币余额:</label> <input class="span3 inline-input"
|
||||||
type="text" value="" disabled="disabled" />
|
id="money" type="text" value="" disabled="disabled" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="field-box">
|
||||||
|
<label>服务器信息:</label> 在线人数: <span id="now" ></span>/<span id="max" ></span>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -123,6 +93,8 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
select();
|
select();
|
||||||
status();
|
status();
|
||||||
|
current();
|
||||||
|
getinfo();
|
||||||
var data = "user=<?=$_SESSION['username']?>";
|
var data = "user=<?=$_SESSION['username']?>";
|
||||||
function select(){
|
function select(){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@ -157,8 +129,10 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
if(content.statu == 0)
|
if(content.statu == 0)
|
||||||
{
|
{
|
||||||
$("#status").html("邮箱验证状态:尚未验证");
|
$("#status").html("邮箱验证状态:尚未验证");
|
||||||
|
$("#status").css("color", "red");
|
||||||
}else{
|
}else{
|
||||||
$('#status').html("邮箱验证状态:已验证");
|
$('#status').html("邮箱验证状态:已验证");
|
||||||
|
$("#status").css("color", "green");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -170,12 +144,10 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
}
|
}
|
||||||
window.onload = function(){
|
window.onload = function(){
|
||||||
var html = $('#status').html();
|
var html = $('#status').html();
|
||||||
//document.write(html);
|
|
||||||
if(html.indexOf("尚未验证") != -1){
|
if(html.indexOf("尚未验证") != -1){
|
||||||
$('#status').html($('#status').html()+ " <a href='<?=Url('index', 'mail')?>' onclick='display()'>点击这里进行验证</a>")
|
$('#status').html($('#status').html()+ " <a href='<?=Url('index', 'mail')?>' onclick='display()'>点击这里进行验证</a>")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
current();
|
|
||||||
function current(){
|
function current(){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"GET",
|
type:"GET",
|
||||||
@ -183,19 +155,31 @@ if (empty ( $_SESSION ['username'] ))
|
|||||||
data:{user:"<?=$_SESSION['username']?>"},
|
data:{user:"<?=$_SESSION['username']?>"},
|
||||||
url:"<?=Url('user_current' , 'current')?>",
|
url:"<?=Url('user_current' , 'current')?>",
|
||||||
success:function(rdata){
|
success:function(rdata){
|
||||||
$.each(rdata.info,function(index,content)
|
$("#money").val( rdata.info );
|
||||||
{
|
|
||||||
if(rdata.status == "success")
|
|
||||||
{
|
|
||||||
$("#money").val( content.balance );
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
error:function(){
|
error:function(){
|
||||||
alert("尚未查询到此用户的游戏币余额");
|
alert("尚未查询到此用户的游戏币余额");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
function getinfo(){
|
||||||
|
$.ajax({
|
||||||
|
type:"GET",
|
||||||
|
dataType:"json",
|
||||||
|
data:{ip:"play.i5mc.com"},
|
||||||
|
url:"https://mcapi.us/server/status",
|
||||||
|
success:function(rdata){
|
||||||
|
if(rdata.status=="success"){
|
||||||
|
$("#max").html( rdata.players.max );
|
||||||
|
$("#now").html( rdata.players.now );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function(){
|
||||||
|
alert("尚未查询到服务器信息");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
9
View/servers.php
Normal file
9
View/servers.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title><?=$title?></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in New Issue
Block a user