Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с браузерами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
PVG
Отправлено: 19 Августа, 2012 - 23:16:54
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Здравствуйте! Дайте пожалуйста совет.

Пишу чат. С фреймами.Верхний фрейм отвечает за вывод сообщений, а нижний за поле для их ввода.

Так вот. После того как я нажимаю отправить в нижнем фрейме, у меня остаются данные в поле. Для этого я джаваскриптом из верхнего поля после добавления сообщения в БД обновляю нижний фрейм.

Еще в верхнем фрейме див с сообщениями автоматически прокручивается вниз (джаваскриптом). Кодировку использую утф-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 без БОМ, то и в хроме появляются кракозябры.
Прикреплено изображение (Нажмите для увеличения)
1.PNG

(Отредактировано автором: 19 Августа, 2012 - 23:24:54)

 
 Top
caballero
Отправлено: 19 Августа, 2012 - 23:22:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Где-то читал, что на это не нужно обращать внимание, просто скрыть ошибки.

Конечно, зачем исправлять косяки если их можно скрыть и сделать вид что все работает.
BOM поубирай
и отправь хедер
header("Content-Type: text/html;charset=UTF-8");

(Отредактировано автором: 19 Августа, 2012 - 23:22:36)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
PVG
Отправлено: 19 Августа, 2012 - 23:35:29
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




после добавления хедера в самое начало файла, появилась в браузере:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\mc\chat.php:1) in Z:\home\localhost\www\1\chat.php on line 1

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\mc\chat.php on line 2

Я на денвере.

(Отредактировано автором: 19 Августа, 2012 - 23:35:56)

 
 Top
caballero
Отправлено: 19 Августа, 2012 - 23:42:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




значит пробелы какие нибудь попали еще - проверь начало файла
при чем тут денвер или нет


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
PVG
Отправлено: 20 Августа, 2012 - 17:53:42
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




caballero, спасибо, в опере тепрь работает, никаких варнингов не кидает, но ИЕ все также выкидывает то окно и див не прокручивает.

Еще я нашел баг при вводе данных, прег_реплэйс мой пропускал вот такую комбинацию: "214 мкйуксар ло1йр31*", а если поставить просто *, то нет. Решил разобраться с этим, а не копировать, нашел хорошую статью, вроде все понял, но почему-то не работает регулярка с русскими буквами:

PHP:
скопировать код в буфер обмена
  1. <?
  2. $a=$_POST['a'];
  3. if(preg_match("/^[а-я]$/", $a)) {echo "da";} else {echo "net";}
  4. ?>


Если в поле ввести "а", то получаю "нет", а если ввести "А", то да Однако . Пробовал дописывать символы u(предписывает интерпретировать шаблон как строку в utf-8), i(регистронезависимый поиск), но толку 0. Если в регулярное выражение вписать латинские символы, все работает. В чем проблема тут?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB