Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Господа, кто ставил себе AJAX_post_preview-1.0.2 ?
Я поставил, работает!
Но есть проблема:
Кодировка нашего форума windows-1251
При предварительном просмотре через этот Аякс служебные сообщения выводятся квадратиками, а нормальный текст (введённый пользователем) - нормально!
В чём проблема? Я уже и так, и сяк подбирался, и utf8_encode() везде понавтыкал, но проблему так и не решил.
В файле xajax.inc.php я нашёл строчку
header("Content-type: text/xml; charset=utf-8");
и заменил её на
header("Content-type: text/xml; charset=windows-1251");
После этого наоборот, служебный текст стал выводиться нормально, а вместо введённого пользователем русского текста - какие-то крякозябры (но уже не квадратики)!
Может, надо куда utf8_encode() воткнуть?
Но куда?
Редактировался beotiger (2006-02-16 12:03:58)
Лечиться, данное следующим образом:
Качаешь последнюю версию с сайта: http://www.xajaxproject.org/
На момент написания: xajax 0.2
Заменяешь файлы:
xajax.inc.php
Добавляешь:
/xajax_js
xajaxResponse.inc.php
В файле xajax.inc.php:
header("Content-type: text/xml; charset=windows-utf-8");
Меняешь на:
header("Content-type: text/xml; charset=windows-1251");
bandit
Спасибо!
но проблема осталась та же.
Вот она:
- Текст, введённый в форму ответа/сообщения отображается правильно.
- Сообщения, читаемые файлом post.server.php из lang/Russian/ выводятся чёрными квадратиками.
Почему так происходит?
Пока я решил проблему следующим образом - все сообщения служебные (типа ошибок, кто-то написал), выводятся на английском, основной текст - на русском.
В принципе, нормально, но хотелось бы, чтобы всё было на русском.
Ну не люблю я эту utf-8, она слишком много места в базе жрёт.
Сейчас проверил метод bandit'а - пока всё работает.
Немного поправлю папка /xajax_js и файл xajaxResponse.inc.php должны заливаться в туже папку что и xajax.inc.php, то есть в /include.
А в файле xajax.inc.php править ничего не нужно. В версии, которую я скачал кодировка определяется автоматически.
bandit respect!
Редактировался neutral (2006-02-17 04:33:22)
neutral
Я так и делал...
Токо он ещё файл /xajax/xajax.inc просил.
Я ему подсунул переименнованный xajax_uncompressed.inc
P.S.
А кодировка твоего форума какая по умолчанию?
beotiger
А ты сам xajax.inc.php обновил?
Кодировка у меня стандартная win-1251, тоже до этого константы не понимал...
Правда пока что тестил только локально на Денвере... попробую на форум поставить скажу точно.
Не, ни хера. Я всё заменил, несколько раз пробовал, квадратики так и выводятся.
Не знаю, в чём проблема.
Вот что выводится: (вместо надписи "Просмотр сообщения"
��������������� �������� ���������
Файлов стало больше, а проблема та же...
Поставил на своём форуме, у меня работает как часы. Посмотрю еще что юзеры напишут...
Может это зависит от браузера. Дело в том, что я 99 процентов работаю с лисичкой 1.5, другими браузерами только для проверки пользуюсь, но вот Аякс как раз и забыл проверить... наверное.
Гы... я 100% пользуюсь лисичкой 1.5
Проверял на IE 6.0 и Opera 8.5 тоже работает...
Блин. Тогда не знаю в чём проблема!
гм.. у меня тоже самое что и у beotiger'а.
А у меня после долгих мучений все работает
как исправляли?
Просто пробовал разные версии, и еще менял один параметр в файле. Если надо, могу потом выложить мою текущую версию.
Надо поменять в xajax.inc.php:
189: $this->bDecodeUTF8Input = false;
на:
189: $this->bDecodeUTF8Input = true;
о да, только не сразу заработало.
Редактировался maximum (2006-11-03 22:01:41)
Как же все-таки заставить работать этот мод?
Если я ставлю его "как есть", то вижу вместо констант ????????????????
Надо поменять в xajax.inc.php:
189: $this->bDecodeUTF8Input = false;
на:
189: $this->bDecodeUTF8Input = true;
Если сделать, как описано выше, то мод вообще перестает работать, т.е. ничего не делает.
А если в xajax.inc.php поменять:
[mono]50: define ('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8' );[/mono]
на
[mono]50: define ('XAJAX_DEFAULT_CHAR_ENCODING', 'windows-1251' );[/mono]
то тогда константы отображаются правильно, зато вместо текста вылезает Давайте РїСЂРѕС...
Вобщем, запарился я. Единственный случай, когда я наблюдал исправную работу, это если удалить папку xajax_js - но в этом случае через 6 сек выскакивает надоедливое сообщение.
Что же нужно такого сделать, чтобы оживить этот мод?
Тестирую на локалхосте в Денвере:
Apache 1.3.33
PHP 4.4.0
GD 2.0.28
MySQL 4.1.8-max
PunBB 1.2.14
Modern BB Code Mod 1.0.0 (сборка trijin)
Private Message Mod 1.2.2
Easy Poll Mod 1.1.3
Attachment Mod 2.0.1
Редактировался Costa (2006-11-22 15:57:27)
Хз, у меня почти все так же, только модов на пару десятков больше Лично я все сделал как описано выше и только потом то, что #16. И еще, папка xajax_js у меня в корне
только модов на пару десятков больше
Ну так Вы же Мастер, а я всего лишь Новичок
Похоже, обломался я пока с этим модом, решил отложить его до лучших времен. Подожду, может еще кто сокровенным поделится
Пойду себе местное цитирование вкрячивать, уж больно оно мне понравилось.
Итак, господа хорошие , проблема с кодировкой для xajax решена целиком и полностью.
Спасибо форуму xajax, там эта проблема перетерта не один раз, вплоть до того, что предлагалось включать в код спец. функции для перекодировки. Но ларчик просто открывался. Итак, что нужно сделать:
1. Использовать xajax версии 0.2.4 - я опыты на нем ставил.
2. В файле xajax.inc.php в строке 50 выставить define ('XAJAX_DEFAULT_CHAR_ENCODING', 'windows-1251' );
3. В файле xajax.inc.php в строке 189 выставить $this->bDecodeUTF8Input = true;
4. Убедиться в наличии (или подключить) в вашей конфигурации хоста (Денвера) PHP-расширение iconv - перекодировка через него пойдет.
Все .
P.S. iconv подключается в php.ini посредством снятия комментария extension=php_iconv.dll. Естественно, сама DLL тоже должна присутствовать. В базовом пакете Денвера ее нет, нужно скачать дополнительный пакет расширений и установить его. Как подключать iconv на хосте - это надо по месту разбираться.
Не знаю насчет iconv, по крайней мере я не качал, а все остальное есть выше
Есть (кроме iconv ), если у кого-то заработало без нее, то и хорошо, значит перекодировка пошла другим маршрутом (xajax допускает по-моему 3 варианта). С iconv должно 100% заработать, чудес-то не бывает.
Кстати, правильным решением проблем с кодировкой будет вернуть исходный файл xajax.inc.php на место (из архива).
А в файле xxxxx.common.php после
$xajax = new xajax("xxxxx.server.php"); // initializing xajax
добавить
$xajax->setCharEncoding($lang_common['lang_encoding']);
$xajax->decodeUTF8InputOn();
Проверено, мин нет .
Редактировался Costa (2006-12-08 15:33:25)
Я бы не стал откатываться на более старую версию xajax. Вероятно девелоперы не просто так циферки инкрементят