1. V.Kay - 2 марта 2015 — 09:57 - перейти к сообщению
При переезде со старой версии форума 1.9.1 на FM 1.0 RC1 появились постоянные ошибки сверху над темами, над заглавной страницей. Несколько раз форум атаковали, несколько раз я восстанавливал админство и сам форум, благо были резервные копии. Но вот с этими ошибками справится не могу. Подскажите, плиз что делать. Видны ошибки при вхождении на форум со своим акаунтом. Адрес форума: http://www.bassbel.com/forums/index.php
2. shyuser - 2 марта 2015 — 13:37 - перейти к сообщению
По ошибке
CODE:
нужно в файле Notice: Undefined index: NewAdd in /h/bassbelcom/htdocs/forums/forums.php on line 41
CODE:
добавить строку \language\russian\lang_front_forums.php
CODE:
$this->LANG['NewAdd'] = '';
3. electron - 2 марта 2015 — 14:33 - перейти к сообщению
V.Kay пишет:
Видны ошибки при вхождении на форум со своим акаунтом
здесь нет экстрасенсов, ошибки в студию!
4. diocdicoc - 23 августа 2015 — 09:16 - перейти к сообщению
Всем привет!
Вхожу и вижу
Notice: Undefined offset: 5 in Z:\home\localhost\www\n\f\include\lib.php on line 40
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\n\f\include\lib.php:40) in Z:\home\localhost\www\n\f\loginout.php on line 67
Но сам вход работает. Что делать?
Вхожу и вижу
Notice: Undefined offset: 5 in Z:\home\localhost\www\n\f\include\lib.php on line 40
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\n\f\include\lib.php:40) in Z:\home\localhost\www\n\f\loginout.php on line 67
Но сам вход работает. Что делать?
5. 1Bot - 23 августа 2015 — 10:12 - перейти к сообщению
diocdicoc пишет:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\n\f\include\lib.php:40) in Z:\home\localhost\www\n\f\loginout.php on line 67
Такая ошибка возникает при попытке установить заголовки веб-страницы после начала вывода.
В 99% случаев ошибка из-за того, что:
а) Отправка основного содержания уже началась, т.к. перед тегом <?php вставлена пустая строка или пробел.
А все, что перед <?php - интерпретируется как HTML-код основного содержания
б) В начале файла подключается другой файл, в котором идет отправка основного содержания либо явно (функциями echo или print), либо неявно, как в предыдущем варианте с пробелом или пустой строкой
Так что надо проверить все файлы, в т.ч. подключаемые, на наличие таких пробелов или пустых строк перед началом кода PHP
в) Почти вариант а), но такой, что заметить этот дополнительный пробел крайне сложно. Дело в том, что свой файл PHP вы можете создать в кодировке UTF-8, и некоторые редакторы кода в начало файла запишут дополнительный специальный символ, идентификатор UTF-8 (BOM - byte order mark). В редакторе он отображаться не будет, а вот сервер, который будет обрабатывать этот файл, может его принять просто за одиночный символ и вывести его сразу после заголовков. Этот символ тоже может вообще никак не отобразиться в браузере, но если посмотреть исходный код страницы, можно увидеть дополнительный отступ или знак "?" перед основным содержимым (обычно перед тегом BODY) Соответственно, если такой символ выводится, а в файле есть функция Header(), то это и приведет к появлению ошибки Cannot modify header information - headers already sent by. Увидеть этот символ, в виде знака ?, квадратика или пробела можно, открыв файл в обычном блокноте. Чтобы избавиться от этой проблемы, в настройках своего редактора PHP найдите и отключите вставку этого идентификатора.
Оставшийся 1% случаев - это неправильные настройки сервера или PHP интерпретатора. Скорее всего вы с этим вряд ли столкнетесь.