Добрый день! Установил модуль редактирования конфига с панели. Вроде работает, но по нажатию кнопки "Сохранить" ничего не происходит, т.е - по коду, должно писать что "Конфиг успешно сохранен!" или же "Файла не существует!", но ни то, ни другое не пишет. Вот код: PHP: public function send_config($serverid = null) { if(!$this->user->isLogged()) { $this->session->data['error'] = "Вы не авторизированы!"; $this->response->redirect($this->config->url . 'account/login'); } if($this->user->getAccessLevel() < 0) { $this->session->data['error'] = "У вас нет доступа к данному разделу!"; $this->response->redirect($this->config->url); } $this->load->model('servers'); $this->load->library('ssh2'); $ssh2Lib = new ssh2Library(); $server = $this->serversModel->getServerById($serverid, array('users', 'locations', 'games')); $error = $this->validate($serverid); if($error) { $this->session->data['error'] = $error; $this->response->redirect($this->config->url . 'servers/index'); } if($this->request->server['REQUEST_METHOD'] == 'POST') { $text = @$this->request->post['text']; $file = 'ftp://gs'.$server['server_id'].':'.$server['server_password'].'@'.$server['location_ip'].':21/server.cfg'; if (@fopen($file, "r")) { $link = $ssh2Lib->connect($server['location_ip'], $server['location_user'], $server['location_password']); $output = $ssh2Lib->execute($link, "cd /home/gs$serverid; echo $text > server.cfg"); $ssh2Lib->disconnect($link); $this->data['status'] = "success"; $this->data['success'] = "Конфиг успешно сохранен!"; } else { $this->data['status'] = "error"; $this->data['error'] = "Файла не существует!"; } } return json_encode($this->data); } В этой части кода: PHP: $this->data['status'] = "success"; $this->data['success'] = "Конфиг успешно сохранен!"; } else { $this->data['status'] = "error"; $this->data['error'] = "Файла не существует!"; } Такое ощущение, как будто не хватает условия. Пробовал делать так: PHP: $result = $this->serversModel->sendServerAction($server, 'start'); $result = $this->serversModel->parseServerOutput($result); if($result['status'] == "OK") { $this->serversModel->updateServer($server, array('server_status' => 2)); $this->data['status'] = "success"; $this->data['success'] = "Конфиг успешно сохранен!"; } else { $this->data['status'] = "error"; $this->data['error'] = $result['description']; } Но тогда страница вообще не работает (HTTP ERROR 500). Кто раньше юзал эту панель или знает как исправить, подскажите пожалуйста, очень поможете!
debug http://phpfaq.ru/debug https://netbeans.org/kb/docs/php/debugging_ru.html https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
Вот ошибка из лога: PHP: [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 [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: $adaps = $this->adapsModel->getAdaps(array('adap_status' => 1),array('games'),array(), $options); 115 строка из setting.php PHP: private function validatePOST() {
Не понял. В первом посту. Сейчас такие ошибки. PHP: [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 [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
Ошибки дословно на русский переводятся. Пхп-машина очень четко и неоднозначно всегда говорит что пошло не так. Если проблемы с английским - всегда можно воспользоваться гугл.транслейтом. А вообще английский знать надо раз программированием занимаешься.
Как только увидел эту ошибку, сразу же её перевел. И прежде чем обратиться к вам на форум, пытался ее исправить.
Неопределенная переменная в файле setting.php на 44-ой строке. В 44 строке, как я понял, в переменную adaps передается значение: PHP: $adaps = $this->adapsModel->getAdaps(array('adap_status' => 1),array('games'),array(), $options); Далее переменная adaps передается сюда: PHP: $this->data['adaps'] = $adaps;
ну вот, нет переменной, а её хотят передать, это совсем не страшно может быть или сломать всё, надо вникать в логику программы, и исправлять