За последние 24 часа нас посетили 71259 программистов и 10240 роботов. Сейчас ищут 2779 программистов ...

LitePanel - панель управления игровым хостингом. Баг с конфигом.

Тема в разделе "PHP для новичков", создана пользователем Alex123, 7 авг 2016.

  1. Alex123

    Alex123 Новичок

    С нами с:
    7 авг 2016
    Сообщения:
    5
    Симпатии:
    0
    Добрый день!

    Установил модуль редактирования конфига с панели. Вроде работает, но по нажатию кнопки "Сохранить" ничего не происходит, т.е - по коду, должно писать что "Конфиг успешно сохранен!" или же "Файла не существует!", но ни то, ни другое не пишет.

    Вот код:
    PHP:
    1. public function send_config($serverid = null) {
    2.          if(!$this->user->isLogged()) {
    3.    $this->session->data['error'] = "Вы не авторизированы!";
    4.    $this->response->redirect($this->config->url . 'account/login');
    5.   }
    6.   if($this->user->getAccessLevel() < 0) {
    7.    $this->session->data['error'] = "У вас нет доступа к данному разделу!";
    8.    $this->response->redirect($this->config->url);
    9.   }
    10.  
    11.   $this->load->model('servers');
    12.   $this->load->library('ssh2');
    13.   $ssh2Lib = new ssh2Library();
    14.   $server = $this->serversModel->getServerById($serverid, array('users', 'locations', 'games'));
    15.   $error = $this->validate($serverid);
    16.   if($error) {  
    17.     $this->session->data['error'] = $error;
    18.     $this->response->redirect($this->config->url . 'servers/index');
    19.   }
    20.   if($this->request->server['REQUEST_METHOD'] == 'POST') {
    21.      
    22.   $text = @$this->request->post['text'];
    23.   $file = 'ftp://gs'.$server['server_id'].':'.$server['server_password'].'@'.$server['location_ip'].':21/server.cfg';
    24.   if (@fopen($file, "r")) {
    25.            
    26.         $link = $ssh2Lib->connect($server['location_ip'], $server['location_user'], $server['location_password']);
    27.         $output = $ssh2Lib->execute($link, "cd /home/gs$serverid; echo $text > server.cfg");
    28.         $ssh2Lib->disconnect($link);
    29.                 $this->data['status'] = "success";
    30.                 $this->data['success'] = "Конфиг успешно сохранен!";
    31.             } else {
    32.                 $this->data['status'] = "error";
    33.                 $this->data['error'] = "Файла не существует!";
    34.             }
    35.   }
    36.  
    37.         return json_encode($this->data);
    38.     }
    В этой части кода:
    PHP:
    1. $this->data['status'] = "success";
    2.                 $this->data['success'] = "Конфиг успешно сохранен!";
    3.             } else {
    4.                 $this->data['status'] = "error";
    5.                 $this->data['error'] = "Файла не существует!";
    6.             }
    Такое ощущение, как будто не хватает условия. Пробовал делать так:
    PHP:
    1. $result = $this->serversModel->sendServerAction($server, 'start');
    2. $result = $this->serversModel->parseServerOutput($result);
    3. if($result['status'] == "OK")
    4. {
    5.     $this->serversModel->updateServer($server, array('server_status' => 2));
    6.     $this->data['status'] = "success";
    7.     $this->data['success'] = "Конфиг успешно сохранен!";
    8. }
    9. else
    10. {
    11.     $this->data['status'] = "error";
    12.     $this->data['error'] = $result['description'];
    13. }
    Но тогда страница вообще не работает (HTTP ERROR 500).

    Кто раньше юзал эту панель или знает как исправить, подскажите пожалуйста, очень поможете!
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
  3. Alex123

    Alex123 Новичок

    С нами с:
    7 авг 2016
    Сообщения:
    5
    Симпатии:
    0
    Вот ошибка из лога:
    PHP:
    1. [Sun Aug 07 14:08:41 2016] [error] [client 192.168.1.110] PHP Notice:  Undefined variable: options in /var/www/application/controllers/servers/setting.php on line 44, referer: http://192.168.1.111/servers/serverLogs/index/3
    2. [Sun Aug 07 14:20:13 2016] [error] [client 192.168.1.110] PHP Parse error:  syntax error, unexpected 'private' (T_PRIVATE) in /var/www/application/controllers/servers/setting.php on line 115, referer: http://192.168.1.111/servers/control/index/3
    44 строка из setting.php
    PHP:
    1. $adaps = $this->adapsModel->getAdaps(array('adap_status' => 1),array('games'),array(), $options);
    115 строка из setting.php
    PHP:
    1. private function validatePOST() {
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Как перевести?

    Где код settings.php?
     
  5. Alex123

    Alex123 Новичок

    С нами с:
    7 авг 2016
    Сообщения:
    5
    Симпатии:
    0
    Не понял.
    В первом посту.

    Сейчас такие ошибки.
    PHP:
    1. [Sun Aug 07 14:53:38 2016] [error] [client 192.168.1.110] PHP Notice:  Undefined variable: options in /var/www/application/controllers/servers/setting.php on line 44, referer: http://192.168.1.111/servers/control/index/3
    2. [Sun Aug 07 14:56:20 2016] [error] [client 192.168.1.110] PHP Warning:  fread(): Length parameter must be greater than 0 in /var/www/engine/libs/query/base.php on line 34, referer: http://192.168.1.111/servers/setting/index/3
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Ошибки дословно на русский переводятся. Пхп-машина очень четко и неоднозначно всегда говорит что пошло не так. Если проблемы с английским - всегда можно воспользоваться гугл.транслейтом. А вообще английский знать надо раз программированием занимаешься.
     
  7. Alex123

    Alex123 Новичок

    С нами с:
    7 авг 2016
    Сообщения:
    5
    Симпатии:
    0
    Как только увидел эту ошибку, сразу же её перевел. И прежде чем обратиться к вам на форум, пытался ее исправить.
     
    #7 Alex123, 7 авг 2016
    Последнее редактирование: 7 авг 2016
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Как переводится?
     
  9. Alex123

    Alex123 Новичок

    С нами с:
    7 авг 2016
    Сообщения:
    5
    Симпатии:
    0
    Неопределенная переменная в файле setting.php на 44-ой строке.

    В 44 строке, как я понял, в переменную adaps передается значение:
    PHP:
    1. $adaps = $this->adapsModel->getAdaps(array('adap_status' => 1),array('games'),array(), $options);
    Далее переменная adaps передается сюда:
    PHP:
    1. $this->data['adaps'] = $adaps;
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    ну вот, нет переменной, а её хотят передать, это совсем не страшно может быть или сломать всё,
    надо вникать в логику программы, и исправлять
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    какая разница куда дальше идет переменная адапс если не определена совсем другая?