- Регистрация
- 30 Май 2018
- Сообщения
- 18
- Лучшие ответы
- 0
- Репутация
- 0
Здравствуйте, уважаемые форумчане. Уже как 1.5 года не могу исправить проблему с консолью на игровом хостинге, который стоит на GamePL.
Была раньше лицензионная панель, но после того как умер разработчик, она больше стабильно не обновляется и не работает.
Поэтому пришлось брать слитую версию панели. И в ней не работает консоль. Помогите разобраться в чём беда.
Вот консоль:
Вот console.class.php
Права на папку conf выставлял, Но он всё равно не создаёт логи консоли, создал папку console в корне начала отображать текст который вводиться в консоль, но она его не исполняет и не принимает данные с серверов
Была раньше лицензионная панель, но после того как умер разработчик, она больше стабильно не обновляется и не работает.
Поэтому пришлось брать слитую версию панели. И в ней не работает консоль. Помогите разобраться в чём беда.
Вот консоль:
HTML:
<link href='http://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
<script>
$(document).ready(function () {
$(document).on('click', '.but-cons', function (e) {
e.preventDefault();
color = $(this).attr('c-color');
bcolor = $(this).attr('bcolor');
$('.console').css('color', color).css('background-color', bcolor);
$.cookie('console_color',color);
$.cookie('console_color2',bcolor);
});
if($.cookie){
if($.cookie('console_color')){
color = $.cookie('console_color');
bcolor = $.cookie('console_color2');
$('.console').css('color', color).css('background-color', bcolor);
}
}
});
</script>
<div class="page-bar" style="padding:10px; margin-top:15px; margin-left: 15px; margin-right:15px;">
<form action="/servers/console/{id}" method="post" class="form_console" style="padding:0px; margin:0px;">
<textarea style="color: #0f0;
background-color: black;
font-family: Inconsolata;min-width: 100%; max-width: 100%; min-height: 400px; margin-bottom: 10px;" disabled
class="form-control console" id="console_data">{data}</textarea>
<div class="row">
<div class="col-xs-12 col-md-8">
<div class="input-group">
<span class="input-group-addon">Команда</span>
<input class="form-control" name="data[comand]" id="console_comand" type="text">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">Отправить</button>
</span>
</div>
</div>
<div class="col-xs-6 col-md-4">
<button c-color="#0f0" bcolor="black" class="btn btn-circle btn-icon-only btn-default tooltips but-cons"
type="submit" style="padding-top: 0px; background-color:black;float:right;">
<i style="color:#0f0;" class="fa fa-terminal"></i>
</button>
<button c-color="#f00" bcolor="black" class="btn btn-circle btn-icon-only btn-default tooltips but-cons"
type="submit" style="padding-top: 0px; background-color:black;float:right;">
<i style="color:#f00;" class="fa fa-terminal"></i>
</button>
<button c-color="white" bcolor="DarkBlue" class="btn btn-circle btn-icon-only btn-default tooltips but-cons"
type="submit" style="padding-top: 0px; background-color:DarkBlue;float:right;">
<i style="color:white;" class="fa fa-terminal"></i>
</button>
<button c-color="#000" bcolor="white" class="btn btn-circle btn-icon-only btn-default tooltips but-cons"
type="submit" style="padding-top: 0px; background-color:white;float:right;">
<i style="color:#000;" class="fa fa-terminal"></i>
</button>
<button c-color="white" bcolor="black" class="btn btn-circle btn-icon-only btn-default tooltips but-cons"
type="submit" style="padding-top: 0px; background-color:black;float:right;">
<i style="color:white;" class="fa fa-terminal"></i>
</button>
</div>
</div>
</form>
<script type="text/javascript">
$(document).ready(function () {
console_load();
});
</script>
</div>
HTML:
<?php
$true = true;
class servers_console
{
public static function base ( $id )
{
if ( api::admin ( 'servers' ) ) {
db::q ( 'SELECT * FROM gh_servers where id="' . $id . '"' );
} else {
db::q ( 'SELECT * FROM gh_servers where id="' . $id . '" and user="' . api::info ( 'id' ) . '"' );
}
if ( db::n () != 1 ) {
if(!servers::friend ( $id , 'console' )){
api::result( l::t ('Недостаточно привилегий!'));
return false;
}else{
db::q ( 'SELECT * FROM gh_servers where id="' . $id. '"' );
}
}
if ( db::n () == 1 ) {
$row = db::r ();
$adress = servers::ip_server($row['box']) . ':' . $row[ 'port' ];
api::nav ( "/servers" , l::t("Серверы") );
api::nav ( "/servers/base/" . $id , $adress );
api::nav ( "" , l::t('Консоль') , '1' );
servers::$speedbar = $id;
$class = servers::game_class ( $row[ 'game' ] );
if ( $row[ 'time' ] < time () ) {
api::result ( l::t('Срок аренды сервера истек') );
} else {
if ( $row[ 'status' ] != "1" ) {
api::result ( l::t('Включите сервер') );
} else {
if ( $class::info ( 'console' ) ) {
api::inc ( 'ssh2' );
if ( ssh::gh_box ( $row[ 'box' ] ) ) {
if ( $_REQUEST[ 'get' ] == 1 ) {
if(api::$demo){
api::result ( l::t ( 'Данная функция отключена в демо режиме.' ) );
return false;
}
$comand = api::cl ( $_POST[ 'data' ][ 'comand' ] );
if ( $comand ) {
if ( ! preg_match ( "/^[0-9a-zA-Z_ \/]{0,40}$/i" , $comand ) ) {
if ( mb_strlen ( $comand , "utf-8" ) > 40 ) {
api::result ( l::t('Максимальная длина команды 40 символов') );
} else {
api::result ( l::t('Команда содержит недопустимые символы') );
return false;
}
} else {
$pid = servers::get_pid_screen($row[ 'sid' ]);
if(!$pid){
api::result ( l::t('Не найден процесс') );
return false;
}
$exec = 'screen -S server_' . $row[ 'sid' ] . ' -p 0 -X stuff \'' . $comand . '\'$\'\n\';';
ssh::exec_cmd ( $exec );
sleep ( 1 );
}
}
$exec = "cd /host/" . $row[ 'user' ] . "/" . $row[ 'sid' ] . "/;";
$exec .= "screen -S server_" . $row[ 'sid' ] . " -X -p 0 hardcopy -h ./console.txt";
ssh::exec_cmd ( $exec );
sleep ( 2 );
$exec1 = ROOT . '/conf/logs/' . $row[ 'user' ] . '_' . $row[ 'id' ] . '.txt';
ssh::get_file ( "/host/" . $row[ 'user' ] . "/" . $row[ 'sid' ] . "/console.txt" , $exec1 );
sleep ( 2 );
api::ajax_d ( str_replace ( '\n' , "\n" , htmlspecialchars ( trim ( file_get_contents ( $exec1 ) ) , null , '' ) ) );
} else {
tpl::load ( 'servers-console' );
tpl::set ( '{id}' , $row[ 'id' ] );
tpl::set ( '{data}' , ' ' );
tpl::compile ( 'content' );
}
} else {
api::result ( l::t('Не удалось установить соединение с сервером') );
}
}else{
api::result ( l::t('Данная функция отключена') );
}
}
}
} else {
api::result ( l::t('Сервер не найден') );
}
}
}
?>
Права на папку conf выставлял, Но он всё равно не создаёт логи консоли, создал папку console в корне начала отображать текст который вводиться в консоль, но она его не исполняет и не принимает данные с серверов