[решено] Пустая страница при нажатии Submit

Главные вкладки

Аватар пользователя lockie lockie 12 июля 2008 в 21:23

Здраствуйте!
У меня друпал 5.7, крутится на линуксовой тачке с Debian Etch, Apache 2.2.3, PHP 5.2.0-8. С недавних пор возникла такая проблема: при редактировании любого материала(комментария, статьи, etc), и при отправке нового, после нажатия кнопки Отправить появляется пустая страница. Причём когда я залогинен под администратором, выводится информация модуля debug (я включил его только для админа), что-то типа "Время генерации страницы столько-то, Memory usage столько-то".
Когда на этой пустой странице жму F5, всё прогружается, но сверху написано:
"Сообщение Статья успешно обновлено.
Содержимое было изменено другим пользователем, изменения не удается сохранить."

Проблема проявляется в браузерах Opera и Firefox 2, в IE не смотрел.
В логах апача вроде тихо:
192.168.10.2 - - [12/Jul/2008:21:29:48 +0400] "GET /node/408 HTTP/1.1" 200 23414 "http://mysite.org/node" "Opera/9.26 (Windows NT 5.1; U; ru)"
192.168.10.2 - - [12/Jul/2008:21:29:49 +0400] "GET /?q=quicktags HTTP/1.1" 200 1975 "http://mysite.org/node/408" "Opera/9.26 (Windows NT 5.1; U; ru)"
192.168.10.2 - - [12/Jul/2008:21:29:50 +0400] "GET /files/images/happyvalentine3fq8.thumbnail.jpg HTTP/1.1" 200 12138 "http://mysite.org/node/408" "Opera/9.26 (Windows NT 5.1; U; ru)"
192.168.10.2 - - [12/Jul/2008:21:29:53 +0400] "GET /node/408/edit HTTP/1.1" 200 35901 "http://mysite.org/node/408" "Opera/9.26 (Windows NT 5.1; U; ru)"
192.168.10.2 - - [12/Jul/2008:21:29:54 +0400] "GET /?q=quicktags HTTP/1.1" 200 1975 "http://mysite.org/node/408/edit" "Opera/9.26 (Windows NT 5.1; U; ru)"
192.168.10.2 - - [12/Jul/2008:21:29:54 +0400] "GET /files/images/1205442051085.thumbnail.png HTTP/1.1" 200 10339 "http://mysite.org/node/408/edit" "Opera/9.26 (Windows NT 5.1; U; ru)"
192.168.10.2 - - [12/Jul/2008:21:29:57 +0400] "POST /node/408/edit HTTP/1.1" 200 333 "http://mysite.org/node/408/edit" "Opera/9.26 (Windows NT 5.1; U; ru)"

Последняя строка, видимо, соответсвует корявому выводу - длина 333 байта, хотя страницы должны быть по 20-30 кбайт.
От чего может возникать такая проблема?

Комментарии

Аватар пользователя lockie lockie 13 июля 2008 в 0:39

Хм, а про лог похапе я и не подумал.
Тем не менее, в нём пусто. Видимо, никаких ошибок/ворнингов при исполнении кода нет.

Аватар пользователя lockie lockie 13 июля 2008 в 3:26

Да я уже в конфиге php поставил memory_limit = 32M - в два раза больше, чем по дефолту, бесполезно... debug говорит, что Memory used at devel_init() в среднем 11-12 Мб, Memory used at devel_shutdown() около 13-15 MB. Файлы базы данных друпала весят 14 Мб, это вроде нормально?..

Аватар пользователя EllECTRONC EllECTRONC 13 июля 2008 в 23:06

Похоже у вас стоит модуль images? Ему «по дефолту» 32 маловато, а еще и devel отбирает.
Image и Imagecache требуется 96 МБ (написанно где-то, кажется в ридми тоже)
У меня стоит лимит = 128МБ и то не до devel.

Аватар пользователя lockie lockie 14 июля 2008 в 3:45

Поставил memory_limit = 128M, отключил модуль devel - бесполезно, та же картина... За исключением того, что размер кривого ответа теперь - 3 байта Cray 2

З.Ы. На тачке кстати 386М оперативки, неужели этого мало для друпала?
З.З.Ы. Перенёс сайт на виндовую тачку с денвером, для теста. Там ситуация повторяется, хотя в денвере по умолчанию память, отведённая скрипту, вообще не лимитирована. А вдобавок иногда появляется вот такое:
warning: Cannot modify header information - headers already sent by (output started at z:\home\test.org\www\themes\nonzero\template.php:1) in z:\home\test.org\www\includes\session.inc on line 100.
warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in z:\home\test.org\www\includes\session.inc on line 103.

(причём иногда говорит, что output started at /var/www/modules/comment/comment.module:1)
Это часом не из-за того, что я правил template.php?

Аватар пользователя lockie lockie 14 июля 2008 в 3:59

Ага, теперь всё время вверху страницы вылазит надоедливое
warning: Cannot modify header information - headers already sent by (output started at /var/www/modules/comment/comment.module:1) in /var/www/includes/common.inc on line 141.
Смекаю, что это из-за того, что я правил кое-какие php-файлы. Только не пойму, из-за чего именно... я же там везде по чуть-чуть... там строчку добавлю, там удалю... 0_о

Аватар пользователя olk olk 14 июля 2008 в 9:57

Такая ошибка выдается когда происходит попытка послать http header , уже после начала вывода контента (достаточно даже вывода просто пустой строки)- ищите где вы там че правили (особенно если правили модули ядра)

Аватар пользователя lockie lockie 15 июля 2008 в 17:36

Ураа, починил. Дело оказалось в том, что я сохранил файлы comment.module и template.php (в теме) в формате UTF-8, а друпалу это не понравилось 0_о После сохранения в ANSI всё встало на свои места.
Всем спасибо за советы!

Аватар пользователя lockie lockie 19 июля 2008 в 3:42

Razunter, да нет, я в Notepad++ правил, вставил в print русский текст - на сайте кракозябры, вот я ткнул в пимпу "Кодировки -> Преобразовать в UTF8"... как оказалось, зря... А что такое BOM, я не шарю, лучше уж в ANSI посохраняю на английском, а по русски через Localizer всё сделаю.

EllECTRONC Smile Сорри... кто ж знал, что такая багофича с кодировками скриптов...

Аватар пользователя Обухов Никита Обухов Никита 13 ноября 2008 в 16:52

«да нет, я в Notepad++ правил, вставил в print русский текст - на сайте кракозябры, вот я ткнул в пимпу "Кодировки -> Преобразовать в UTF8"... как оказалось, зря... А что такое BOM, я не шарю, лучше уж в ANSI посохраняю на английском, а по русски через Localizer всё сделаю.»

Да не надо изобретать велосипед - в том же notepad++ жмите Преобразовать в UTF-8 без BOM и можете смело использовать русские буковки в темплейтах.

PS. BOM - byte-order mark, такой спец. символ

Аватар пользователя AndreyL AndreyL 8 ноября 2008 в 12:14

Такая же ситуация была. Думал, что-то сломалось. Странно, что друпал, отображающий страницы в утф не хочет работать с файлами в кодировке утф.