Обнаружил странную проблему на всех своих русских блогах:
При постинге комментария незарегистрированным пользователем у него открывается совершенно пустая страница. Далее, коммент попадает на модерацию, но админ не получает уведомление по е-мэйлу.
WP 2.2.2 и 2.2.3
На английских все путем.
Кто-нибудь уже сталкивался с этим?
Плагин какой-то мешает. Попробуй для начала отключать и тестировать.
Отключал все – не помогает 🙁
P.S. Хороший аватар 🙂
а ты поставь другую тему и проверь все так же или нет??!!!!
если все работает в новой…. значить проблемы в твоей теме!!!! Может условия комментарий не поставлены или же совсем другие!…. Проверь другую тему
Дело, похоже, завязано на кодировку WP и MySQL.
Итак, проблема: при отсылке комментария незарегистрированным пользователем (и только им) и если комментарий сразу не попадает в спам Акисмета, то пользователь видит пустую страницу, при возврате в пост, его коммента с надписью, что коммент модерируется не видно. Админ не получает уведомления о комменте на модерацию, но в панели управления коммент виден. На стадии модерации.
Провел ряд экспериментов на двух разных хостингах (MySQL c UTF-8 и MySQL c Win-1251).
1. Проблема вылезла сразу после чистой инсталляции WP со стандартной темой.
2. Вылезла она только на хостинге, где MySQL c UTF-8.
3. Проблемными оказались только руссифицированные версии (обе), английская версия устанавливается и работает без проблем.
4. При подключении английской версии к базе проблемной русской версии – глюк остается.
Выводы: при установке локализованной версии с поддержкой UTF-8 в базу пишется некий параметр, вызывающий глюки с комментариями. Похоже, параметр неявный.
Возможно, я что-то упустил из виду.
Проблема пока не решена.
Вообще-то пустая страница это верный признак того, что отключен вывод сообщений об ошибках. Я думаю, что вначале можно было бы проверить логи ошибок и по ним определить, что именно не работает.
В любых других случаях сообщения об ошибках выдаются. И если нажать на пустой странице "обновить", то WP говорит, что такой коммент был только что отправлен.
По поводу логов – хостер сегодня что-то тупит – все мои сайты не доступны. Как только получу к ним доступ, загляну в логи.
Что у кучи народа нормально работают локализованные версии. 😛
Без логов не разберешься. Или хотя бы DEBUG включить.
Что у кучи народа нормально работают локализованные версии. 😛
Без логов не разберешься. Или хотя бы DEBUG включить.[/quote]
Учел, учел 🙂
Только вот оказалось не я один такой 🙂 Выясняется, что это как-то связано с особенностями хостинга McHost. :/
Подскажите, пожалуйста, как можно скинуть лог WP в файл и где его найти?
Вам не лог Вордпресса нужен, а лог ошибок апача. А где искать – у хостера спросите. Может быть, даже через контрольную панель можно посмотреть.
А я вот начал заглядываться в сторону mchost… а сборка русских WP у вас какая?
Думаю у mchost есть пробный бесплатный период, ну по крайней мере уважающие себя хостеры его предоставляют, и можно протестировать от и до все возможности WP.
Испытывал на обоих русских сборках (версии 2.2.х) и на английcкой.
Я имел в виду сборки Макса или Mywordpress?
обе!
На параллельном форуме Vlad предложил решение (работает!)
1. заходим в wp-includes
2. открываем comment.php
3. находим строку номер 400
4. удаляем вот этот кусок
P.S. McHost все на кривость WP валит.
Ясно. Интересно, а менять этот код нужно только для McHost или и для других тоже?
На другом хостере у меня все прекрасно работает.
извиняюсь, есть вопрос: как сделать чтобы анонимоусы могли оставлять комменты без премодерации?
Отключить ее =)
Users must be registered and logged in to comment – отключено, и все равно если добавить коммент не залогиненным, то он не отображается и уходит в модерацию 🙁
наверное это изза это опции(Comment author must have a previously approved comment), щас буду тестировать
бесплатного нету 😀 есть платный 1-й месяц
значит такой хостинг…
В очередной наскок удалось худо-бедно локализовать проблему: она сводится к глючной работе софта у хостера и WordPress с названием блога. Выяснилось, что проблемы с комментами проявляются при соблюдении какого-либо из следующих условий (достаточно одного):
1. В заголовке более трех русских букв. При одной и двухбуквенных названиях блога у меня проблема не проявилась.
2. В заголовке "некачественное" сочетание латинских букв. Точнее установить не удалось.
3. Установлена любая руссификация WordPress.
4. Коллэйт поля Option_Value таблицы опций отличен от utf8_general_ci
Исходя из этого дыру можно залатать без применения хирургии в коде. Нужно убрать руссификацию, либо заменить исходники WordPress оригинальными, в настройках блога сменить название на "безопасную" комбинацию латинских букв (проверяется, как и все, комментированием из незалогиненного состояния), а правильное название блога жестко пропечатать в текущем темплейте. Если используете "All in One SEO", не забудьте заменить в его настройках %blog_title% на то, что нужно вам.
Удалил кусок в comment.php – коменты стали нормально работать, но почта не приходит.
Кто знает или эта проблема решена в 2.5.1?
Хорошо помогает установка плагина wpPHPMailer. Подробнее здесь в конце поста »
Вот не пойму как его поставить, я так понял он еще 2004 года, и на 2.5.1 его как-то по другому ставить надо. Не подскажете?
А в версии 2.5.1 удаление куска кода решает проблему с незарегистрироваными юзерами, а вот зарегистрированные видят белый экран.
Да и уведомления о коментах не приходят млин.
Все как обычно: скопировать в папку wp-content/plugins и активировать в панели управления, как любой другой плагин. У меня на WP 2.5.1 пока все работает нормально. Тьфу-тьфу-тьфу. Да, пользуюсь руссифицированной версией от Lecactus.
MyasNick, да, вот с этим плагином заработало, а вот тот что с оф сайта качал – не работал. Спасибо!
Евгений Яблоков из саппорта хостинга mchost.ru подсказал решение, за что ему отдельное спасибо.
Уточню, что это ОДНОЗНАЧНО решает вопрос на хостинге mchost.ru — проверено. С WordPress вообще ничего делать не надо.
Фишка в том, что необходимо установить PHP5 в режиме CGI.
Нужно:
1. Создать текстовый файл php (без расширения и без пробелов в имени) со следующим содержанием:
#!/usr/local/php5/bin/php -cphp-cgi.ini
2. Закачать созданный файл php в cgi-bin директорию своего домена.
3. Установить права на файл php 755 (-rwxr-xr-x).
4. В файле httpdocs/.htaccess своего домена прописать:
Action phpcgi-script /cgi-bin/php
AddHandler phpcgi-script .php
ВСЁ! У меня заработало. Всем удачи!