Переустановил сервер – посыпались ошибки

12
K
На сайте с 10.01.2015
Offline
110
1036

Пользовался WordPress на голом сервере Debian 8, однако затем пришлось поставить ISPManager 5 на чистую систему. Все работает, но в админ-панели наверх пишет несколько ошибок. Все они относятся к строкам:

if ($_REQUEST['action'] == 'stats') {

if ( $_GET['page'] == basename(__FILE__) ) {

if ( !wp_verify_nonce( $_POST[$meta_box['name'] . '_noncename'], plugin_basename( __FILE__ ) ) )

Раньше естественно такого не было. В чем проблема? Как ее пофиксить? Использую связку Nginx + PHP5-FPM. До установки ISPmanager использовал ее же.

Aisamiery
На сайте с 12.04.2015
Offline
319
#1

Так как самой ошибки не привели, то ваше решение это отключить показ ошибок. Скорее всего у вас Notice (Предупреждения) о том, что таких ключей в массиве не существует.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
K
На сайте с 10.01.2015
Offline
110
#2
Aisamiery:
Так как самой ошибки не привели, то ваше решение это отключить показ ошибок. Скорее всего у вас Notice (Предупреждения) о том, что таких ключей в массиве не существует.

Вот что пишет в верхней части админ-панели.

Notice: Undefined index: action in /var/www/admin/data/www/yandex.com/wp-content/themes/theme/theme-settings.php on line 1176

Notice: Undefined index: action in /var/www/admin/data/www/yandex.com/wp-content/themes/theme/theme-settings.php on line 1192

Notice: Undefined index: page in /var/www/admin/data/www/yandex.com/wp-content/themes/theme/theme-settings.php on line 1174

Notice: Undefined index: wp_noextrenallinks_noncename in /var/www/admin/data/www/yandex.com/wp-content/plugins/wp-noexternallinks/wp-noexternallinks-options.php on line 20

Notice: Undefined index: post_type in /var/www/admin/data/www/yandex.com/wp-content/themes/theme/theme-metaboxes.php on line 397

Notice: Undefined index: layout_noncename in /var/www/admin/data/www/yandex.com/wp-content/themes/theme/theme-metaboxes.php on line 404

Aisamiery
На сайте с 12.04.2015
Offline
319
#3

Kepus, Ну вот про это я и говорил. Либо надо добавить в код проверку ключа isset($array['index']), либо отключить предупреждения/показ ошибок

Пример:


if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) )
K
На сайте с 10.01.2015
Offline
110
#4
Aisamiery:
Kepus, Ну вот про это я и говорил. Либо надо добавить в код проверку ключа isset($array['index']), либо отключить предупреждения/показ ошибок

Пример:

if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) )

Подождите, но как же так выходит? Раньше же такие ошибки не появлялись.

Они как-то влияют на работоспособность CMS ?

Какое решение более правильное?

KB
На сайте с 10.08.2006
Offline
164
KGB
#5
Kepus:
Раньше же такие ошибки не появлялись.

Откройте php.ini и посмотрите что там в error_reporting

Возможно раньше нотисы были отключены.

Вот только отключать не рекомендуется, лучше проверку делать на переменную как написал Aisamiery

K
На сайте с 10.01.2015
Offline
110
#6
KGB:
Откройте php.ini и посмотрите что там в error_reporting
Возможно раньше нотисы были отключены.

Вот только отключать не рекомендуется, лучше проверку делать на переменную как написал Aisamiery

Да попробовал сделать я эту проверку по примеру, в итоге получит белую страницу. С чем это может быть связано?

ISPManager по умолчанию добавил строки:

php_admin_value[display_errors] = stderr

php_admin_value[log_errors] = On

Удалил их, ошибки пропали.

На что вообще влияют эти ошибки? Они замедляют работу сайта или что?

Aisamiery
На сайте с 12.04.2015
Offline
319
#7
Kepus:
Да попробовал сделать я эту проверку по примеру, в итоге получит белую страницу. С чем это может быть связано?
ISPManager по умолчанию добавил строки:
php_admin_value[display_errors] = stderr
php_admin_value[log_errors] = On
Удалил их, ошибки пропали.
На что вообще влияют эти ошибки? Они замедляют работу сайта или что?

Notice нужны для поимки ошибок в программе программистом. Например, вы писали код и работали с одной переменной, а потом промахнулись по клаве и в проверку вбили с опечаткой, так как PHP приводит типы, то даже необъявленную переменную он приведет к null и условие невыполнится никогда, разработчик скорее всего такого не хотел.

Работу, если у вас не 100 RPS, то вы не заметите. На продакшене нельзя открывать ошибки в мир, да и логи лучше не писать если честно. Если не вы разработчик всего этого чуда, то нотисы вам не нужны, если вы, то обязательно проверяйте существование переменных, особенно если они инициализируются динамически. Ошибки замедляют работу приложения только в одном случае (в основном), если где то фиксируются, ведь например на открытие файла с логами тоже расходуются ресурсы.

А так да, ошибок в приложении быть недолжо, никаких. Но это касается программистов, а не юзеров их труда))

K
На сайте с 10.01.2015
Offline
110
#8

Да, видать разработчики написали кривые плагины и тему. Подобные ошибки выдают не все.

Russ1an
На сайте с 25.03.2015
Offline
84
#9
KGB:
Откройте php.ini и посмотрите что там в error_reporting
Возможно раньше нотисы были отключены.

Вот только отключать не рекомендуется, лучше проверку делать на переменную как написал Aisamiery

С каких пор не рекомендуется? На рабочем сайте не только рекомендуется, но и очень важно это сделать, иначе это хороший помощник для хакера.

KB
На сайте с 10.08.2006
Offline
164
KGB
#10
Russ1an:
На рабочем сайте не только рекомендуется, но и очень важно это сделать

Чего???? На рабочем сайте следует отключать display_errors , но не не подавлять ошибки исскуственно. Более того, на рабочем сайте в идеале, даже таких ошибок быть не должно!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий