Здравствуйте! Дайте пожалуйста совет.
Пишу чат. С фреймами.Верхний фрейм отвечает за вывод сообщений, а нижний за поле для их ввода.
Так вот. После того как я нажимаю отправить в нижнем фрейме, у меня остаются данные в поле. Для этого я джаваскриптом из верхнего поля после добавления сообщения в БД обновляю нижний фрейм.
Еще в верхнем фрейме див с сообщениями автоматически прокручивается вниз (джаваскриптом). Кодировку использую утф-8.
Все файлы нотпадом перекодировал в нее, после подключения к БД, mysql_query("SET NAMES utf-8"); написал.
Имею:
1) Хром - все работает замечательно, добавляется, отображается, кракозябр нету, див прокручивается, нижний фрейм обновляется. Но, кстати случилось после того как перекодировал файл в утф-8, вверху каждого фрейма появляется:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\1\chat.php:1) in Z:\home\localhost\www\1\chat.php on line 2
Где-то читал, что на это не нужно обращать внимание, просто скрыть ошибки.
2) Опера - Вместо русских символов кракозябры. Сообщения не добавляются. Джаваскрипт нормально работает.
Перед добавлениям в БД, я поле проверяю так: preg_match('/[a-zа-я0-9]+/iu', $text). Мне кажется что из-за каких-то проблем с кодировкой, это условие не дает добавляться данным в базу.
3) ИЕ - тут вообще какой-то ужас. Данные не добавляются, див не прокручивается. Если я пытаюсь добавить данные, то после нажатия кнопки отправить, получаю окно, как на картинке. В настройках посмотрел стоит кодировка Кириллица (windows), получается ср2151, если поставить утф-8, появляется тоже окно, только нажатием кнопки "повтор", или "отмена" его не убрать - снова появляется. Русские символы отображаются нормально.
В последних двух пишет:
п»ї(???)
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\mc\message.php:1) in Z:\home\localhost\www\mc\message.php on line 1
Если кодировать файлы в утф-8 без БОМ, то и в хроме появляются кракозябры. Прикреплено изображение (Нажмите для увеличения)(Отредактировано автором: 19 Августа, 2012 - 23:24:54)
|