• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Помогите с консолью

HoveringRuss

Начинающий
Пользователь
Регистрация
30 Май 2018
Сообщения
18
Лучшие ответы
0
Репутация
0
Здравствуйте, уважаемые форумчане. Уже как 1.5 года не могу исправить проблему с консолью на игровом хостинге, который стоит на GamePL.
Была раньше лицензионная панель, но после того как умер разработчик, она больше стабильно не обновляется и не работает.
Поэтому пришлось брать слитую версию панели. И в ней не работает консоль. Помогите разобраться в чём беда.

Вот консоль:

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>
Вот console.class.php

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 в корне начала отображать текст который вводиться в консоль, но она его не исполняет и не принимает данные с серверов
 
Сверху Снизу