Да полностью причем это когда я захожу по пути
admin
admin/module
вообще ничего ни дизайна ни настроек, это произошло после того как я сохранился последний раз
у меня такое было с одним модулем... в другой CMS символы не отображались без модуля mbsring (PHP), здесь, как я понимаю, он работает в режиме эмуляции (хотя тоже не спец ).
Похожая ситуация, но пустая страница возникает при отправке каких-либо форм:
логин пользователя (причем логин происходит - если вернуться и обновить заглавную страницу - пользователь вошел),
записать настроек модулей в админке (тоже записываются корректно),
...
Но страница пустая
в логах у провайдера ничего не увидел про память. Вообще - в ошибках только варианты когда я пытался менять .htaccess
Подскажите - может просить провайдера включить какие-то настройки в логах? Или как по-другому узнать причину белых страниц?
У меня есть подозрение, что что-то наворотили или при правке модуля, или при правке phptemplate.engine
Вопрос: в каком месте поставить <?php error_reporting(E_ALL); ?> чтобы выдало ошибки, если они есть? Какой файл ядра вызовется первым?
64M этого предостаточно для большинста модулей... у тебя на хостинге или на локалке сайт? если на хостинге, там есть лог файл, причём наверняка можно посмотреть из админки, тогда запусти один из путей из браузера, и выложи 5 последних строчек ошибок... (только разберись где начало где конец)
Что меня смутило на свежий взгляд - наличие двойной косой черты внутри адресной строки (/ru//?q=user). Это может иметь значение?
Если да - то как это убрать? где-что править? ($base_url не имеет слеша в конце!)
Нет этот лог файл при других проблемах надо смотреть, а строки должны быть, сделай так создай опять файлик test.php и опять положи в корень и запусти...
в конце строк нет точки с запятой, это намеренно так ты проверишь, записываются ошибки в файлик или нет, (всегда сделаешь пару ошибок, в первый раз слышу чтобы этот файлик был пустой...)
если тест удастся, то попробуй убрать все error_reporting а также в файлике .htaccess, если же ошибок не будет звони в суппорт хостинг компании... ( как всегда не забудь выложить результаты сюда )
Да я понимаю и полностью согласен, но к сожалению даже размер log-файла - 0
(error.log у меня писался только когда я пробовал включить логи апача через .htaccess в нужный мне каталог - у них это запрещено)
Проверил - безрезультатно (с точки зрения error.log), но есть отличия:
в случае указанного выше файла код страницы имеет имеет обрамление HTML:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1251"></HEAD> <BODY></BODY></HTML>
а в случае моей проблемы - файл вообще пустой!
хостер - mirohost.net.
В техподдержке ответили что это лог апача и они не будут в нем включать режим ошибок PHP.
Посоветовали настроить лог ошибок в .htaccess. Подскажите - как это в .htaccess настроить, чтобы писались в файл логи, аналогичные (по детализации) коду error_reporting(E_ALL) ?
Но странно получается: ошибки из test.php в лог пишутся, а предупреждения при работе сайта - нет, хотя выводятся на странице:
warning: Invalid argument supplied forforeach() in /var/www/*****/ru/modules/node/node.module on line 521
warning: implode()[function.implode]: Bad arguments. in /var/www/*****/ru/modules/node/node.module on line 525.
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versionfor the right syntax to use near '' at line 1 query: ...
Ошибка, сделанная в themes/theme_name/page.tpl.php тоже в лог попала и(!) результат генерации - абсолютно пустая страница.
Таким образом причина на 99% - ошибка в коде. Остался вопрос - как ее локализировать, если она проявляется при отправке почти всех форм на сайте?
Теперь вспоминай какие модули ты ставил или возможно удалял из системы, такое ощущение что база запорчена... попробуй поставить стандартную тему... вдруг это из-за неё...
М-да - такой вариант решения я конешно рассматривал, но уж очень не хочется это делать...
Дело наверное все-таки не в теме, а в модулях или engine, т.к. для админки используется другая тема, которую я не правил, и в ней глюк тот же...
Попробую себе на локальный сервер скопировать конфу - может все-таки что-то получится увидить в логах.
Ну так попробую отключить в базе все модули кроме самых нужных смотри таблицу system там поле статус поставь 0 для всех модулей которые сторонние, если не уверен не отключай, и СДЕЛАЙ бекап перед этим...
Ура! наконец-то разобрался!!!
Проблема оказалась в наличии 3-х байт BOM (byte-order mask) для UTF-8: EF BB BF в начале файла phptemplate.engine
Все старницы, которые у меня были пустыми использовали переадресацию через header, а буфер вывода уже был не пуст (заполнен этими тремя байтами).
Причем это наблюдалось только у хостера (на PHP 4.4). На домашней машине (PHP 5.2) эта ошибка не наблюдалась.
В связи с этим возникают следующие вопросы:
1. Как тратить меньше времени на поиск ошибок с header-location-redirect?
2. Можно ли (и как) настроить PHP 4 для корректной работы с этими "лишними" байтами в UTF-8 файлах?
3. Какие редакторы настраиваются чтобы не сохранять в файлах эти коды? (я использую Notepad++ 4.6 - там это есть)
1. в логах должна быть ошибка с этим связанная, видимо что-то с настройками вывода ошибок на хосте нитак, лучше доплати пару баксов и нармальный возьми...
3. Писал неоднократно всегда ставишь ANSI + Кодирование в UTF-8 без BOM, никогда не ставь чистый UTF-8 всегда смотри чтобы было 2 галочки поставлено, однако если есть в файле не английские буквы, если только английские, то простой ANSI подойдёт ))
Комментарии
что значит пусто? пустая страница, без дизайна?
Да полностью причем это когда я захожу по пути
admin
admin/module
вообще ничего ни дизайна ни настроек, это произошло после того как я сохранился последний раз
с большой вероятностью проблема с памятью php, если есть возможность - попробуйте увеличить
Дело в том что я пока полный чайник, не можете подсказать как ее увеличить. Заранее спасибо.
у меня такое было с одним модулем... в другой CMS символы не отображались без модуля mbsring (PHP), здесь, как я понимаю, он работает в режиме эмуляции (хотя тоже не спец ).
Попробуйте переустановить.
Дело в том что у меня все работало пока я не закачал определенное количество модулей и сейчас все работаем кроме путей
http://www.sitename.ru/admin/logs
http://www.sitename..ru/admin/module
http://www.sitename..ru/admin/
просто пусто
а если снести эти модули?
или откатить... бекап не делаете :)?
Вообщем я удалил сейчас пару модулей все заработало скорее действительно это связано с памятью
Похожая ситуация, но пустая страница возникает при отправке каких-либо форм:
логин пользователя (причем логин происходит - если вернуться и обновить заглавную страницу - пользователь вошел),
записать настроек модулей в админке (тоже записываются корректно),
...
Но страница пустая
в логах у провайдера ничего не увидел про память. Вообще - в ошибках только варианты когда я пытался менять .htaccess
Подскажите - может просить провайдера включить какие-то настройки в логах? Или как по-другому узнать причину белых страниц?
создай файлик test.php положи в корень...
<?php
phpinfo();
?>
и запусти его, там будет видно сколько памяти доступно... и отпиши здесь тогда дальше поможем...
Вот это:
memory_limit 64M
?
У меня есть подозрение, что что-то наворотили или при правке модуля, или при правке phptemplate.engine
Вопрос: в каком месте поставить <?php error_reporting(E_ALL); ?> чтобы выдало ошибки, если они есть? Какой файл ядра вызовется первым?
64M этого предостаточно для большинста модулей... у тебя на хостинге или на локалке сайт? если на хостинге, там есть лог файл, причём наверняка можно посмотреть из админки, тогда запусти один из путей из браузера, и выложи 5 последних строчек ошибок... (только разберись где начало где конец)
На хостинге. Лог файлы есть, но в них к сожалению ничего полезного
error-log - пустой
access-log:
77.123.XXX.XXX - - [12/Dec/2007:23:38:13 +0200] "GET /ru/?q=users/kv HTTP/1.1" 200 19717 "http://my.site.ua/ru/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
77.123.XXX.XXX - - [12/Dec/2007:23:38:14 +0200] "GET /themes/pharma/pic/ik_reg.gif HTTP/1.1" 200 598 "http://my.site.ua/ru/?q=users/kv" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
77.123.XXX.XXX - - [12/Dec/2007:23:38:14 +0200] "GET /themes/pharma/fototop/kolosy8.jpg HTTP/1.1" 200 45410 "http://my.site.ua/ru/?q=users/kv" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
77.123.XXX.XXX - - [12/Dec/2007:23:38:14 +0200] "GET /themes/pharma/pic/ik_vyhod.gif HTTP/1.1" 200 348 "http://my.site.ua/ru/?q=users/kv" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
77.123.XXX.XXX - - [12/Dec/2007:23:38:15 +0200] "GET /ru/modules/ad/adserve.php?q=1&t=62 HTTP/1.1" 200 72 "http://my.site.ua/ru/?q=users/kv" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
77.123.XXX.XXX - - [12/Dec/2007:23:38:15 +0200] "GET /ru/modules/ad/adserve.php?q=1&t=63 HTTP/1.1" 200 72 "http://my.site.ua/ru/?q=users/kv" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
77.123.XXX.XXX - - [12/Dec/2007:23:38:15 +0200] "GET /ru/modules/ad/adserve.php?q=1&t=64 HTTP/1.1" 200 72 "http://my.site.ua/ru/?q=users/kv" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
Что меня смутило на свежий взгляд - наличие двойной косой черты внутри адресной строки (/ru//?q=user). Это может иметь значение?
Если да - то как это убрать? где-что править? ($base_url не имеет слеша в конце!)
Упсь! листинг лога восприняло как потенциальный спам... ждем решения администратора...
Нет этот лог файл при других проблемах надо смотреть, а строки должны быть, сделай так создай опять файлик test.php и опять положи в корень и запусти...
phpinfo()
echo 'end file'
?>
в конце строк нет точки с запятой, это намеренно так ты проверишь, записываются ошибки в файлик или нет, (всегда сделаешь пару ошибок, в первый раз слышу чтобы этот файлик был пустой...)
если тест удастся, то попробуй убрать все error_reporting а также в файлике .htaccess, если же ошибок не будет звони в суппорт хостинг компании... ( как всегда не забудь выложить результаты сюда )
Да я понимаю и полностью согласен, но к сожалению даже размер log-файла - 0
(error.log у меня писался только когда я пробовал включить логи апача через .htaccess в нужный мне каталог - у них это запрещено)
Проверил - безрезультатно (с точки зрения error.log), но есть отличия:
в случае указанного выше файла код страницы имеет имеет обрамление HTML:
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251"></HEAD>
<BODY></BODY></HTML>
а в случае моей проблемы - файл вообще пустой!
хостер - mirohost.net.
В техподдержке ответили что это лог апача и они не будут в нем включать режим ошибок PHP.
Посоветовали настроить лог ошибок в .htaccess. Подскажите - как это в .htaccess настроить, чтобы писались в файл логи, аналогичные (по детализации) коду error_reporting(E_ALL) ?
Разобрался как включить log:
php_value log_errors 1
#php_value error_reporting E_ALL
php_value error_reporting 8191
php_value display_errors 0
Но странно получается: ошибки из test.php в лог пишутся, а предупреждения при работе сайта - нет, хотя выводятся на странице:
warning: implode() [function.implode]: Bad arguments. in /var/www/*****/ru/modules/node/node.module on line 525.
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 query: ...
Ошибка, сделанная в themes/theme_name/page.tpl.php тоже в лог попала и(!) результат генерации - абсолютно пустая страница.
Таким образом причина на 99% - ошибка в коде. Остался вопрос - как ее локализировать, если она проявляется при отправке почти всех форм на сайте?
Теперь вспоминай какие модули ты ставил или возможно удалял из системы, такое ощущение что база запорчена... попробуй поставить стандартную тему... вдруг это из-за неё...
М-да - такой вариант решения я конешно рассматривал, но уж очень не хочется это делать...
Дело наверное все-таки не в теме, а в модулях или engine, т.к. для админки используется другая тема, которую я не правил, и в ней глюк тот же...
Попробую себе на локальный сервер скопировать конфу - может все-таки что-то получится увидить в логах.
Ну так попробую отключить в базе все модули кроме самых нужных смотри таблицу system там поле статус поставь 0 для всех модулей которые сторонние, если не уверен не отключай, и СДЕЛАЙ бекап перед этим...
Ура! наконец-то разобрался!!!
Проблема оказалась в наличии 3-х байт BOM (byte-order mask) для UTF-8: EF BB BF в начале файла phptemplate.engine
Все старницы, которые у меня были пустыми использовали переадресацию через header, а буфер вывода уже был не пуст (заполнен этими тремя байтами).
Причем это наблюдалось только у хостера (на PHP 4.4). На домашней машине (PHP 5.2) эта ошибка не наблюдалась.
В связи с этим возникают следующие вопросы:
1. Как тратить меньше времени на поиск ошибок с header-location-redirect?
2. Можно ли (и как) настроить PHP 4 для корректной работы с этими "лишними" байтами в UTF-8 файлах?
3. Какие редакторы настраиваются чтобы не сохранять в файлах эти коды? (я использую Notepad++ 4.6 - там это есть)
1. в логах должна быть ошибка с этим связанная, видимо что-то с настройками вывода ошибок на хосте нитак, лучше доплати пару баксов и нармальный возьми...
3. Писал неоднократно всегда ставишь ANSI + Кодирование в UTF-8 без BOM, никогда не ставь чистый UTF-8 всегда смотри чтобы было 2 галочки поставлено, однако если есть в файле не английские буквы, если только английские, то простой ANSI подойдёт ))