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]   

> Без описания
FATAL ERROR
Отправлено: 10 Декабря, 2009 - 21:47:29
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Нояб. 2009  


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




подскажите плиз с чем может быть связана проблема: сохраняется логин в БД в utf-8 и буква "ш" выводится неккоректно, а "Ш" нормально да и вроде все остальные буквы тоже. в чем может быть проблема перед тем как записать логин в БД проходит следующюю проверку:
PHP:
скопировать код в буфер обмена
  1. function check_param($param)
  2.  {
  3.    $param=preg_replace("/[^йцукенгшщзхъфывапролджэячсмитьбюёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ\w]/iU","",$param);
  4.   // $param=preg_replace("/[^\w]/i","",$param);
  5.    
  6.    return $param;
  7.  }

(Отредактировано автором: 10 Декабря, 2009 - 21:52:07)

 
 Top
JustUserR
Отправлено: 10 Декабря, 2009 - 22:15:58
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




FATAL ERROR Вообще регулярные выражения не всегда хорошо работаю с кириллилей - попробуйте вручную установить локаль для текстовых строк


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
FATAL ERROR
Отправлено: 10 Декабря, 2009 - 22:40:59
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Нояб. 2009  


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




JustUserR пишет:
FATAL ERROR Вообще регулярные выражения не всегда хорошо работаю с кириллилей - попробуйте вручную установить локаль для текстовых строк

эмм не очень понял что это значит???
просто у меня на локальном компе нормально проходит "ш" а вот на хостинге траблы возникают...

(Отредактировано автором: 10 Декабря, 2009 - 22:41:37)

 
 Top
JustUserR
Отправлено: 10 Декабря, 2009 - 23:02:46
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




FATAL ERROR Так вот тем более значит что на хостинге установлена другая локаль по умолчанию вот и возникают проблемы - к примеру можно попробовать использовать setlocale(LC_ALL,"ru_RU")


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
FATAL ERROR
Отправлено: 10 Декабря, 2009 - 23:16:51
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Нояб. 2009  


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




JustUserR поставил setlocale(LC_ALL,"ru_RU"); в начале скрипта - но все равно "ш" отображается как вопросики!

я тут проследил где возникает ошибка - вообшем логин без изменений проходит все фильтры и в видe "шшш" доходит до конструкции INSERT INTO почле чего я сразу SELECTом выбираю из БД только что добавленную строку и как раз возвращается мне уже испорченая с вопросиками (опять же только буква "ш" остальные нормально возвращаются).
в таком контексте какие настройки БД можно поменять или обратиться в support хостинга???

(Отредактировано автором: 10 Декабря, 2009 - 23:45:24)

 
 Top
EuGen Администратор
Отправлено: 11 Декабря, 2009 - 10:44:38
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
FATAL ERROR
Отправлено: 11 Декабря, 2009 - 17:03:10
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Нояб. 2009  


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




EuGen пишет:
http://forum.php.su/topic.php?forum=4&topic=21

блин нет, я же говорю что запись портится после добаления/извлечения её из БД!!!
да а ваообще есть функция которая бы переменную перекодировала бы в utf-8 ???
 
 Top
EuGen Администратор
Отправлено: 11 Декабря, 2009 - 17:24:44
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




iconv()


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ALEN
Отправлено: 11 Декабря, 2009 - 19:33:07
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




Не всегда в такой проблеме помогает перекодировка, в таких случаях при написании кода и создании таблиц и столбцов, необходимо явно указывать везде кодировку, только в этом случае не будет проблем. А Вы по всей видимости на локальной машине создали БД заполнили с определенной кодировкой и перенесли все это на хостинг, где другая локаль и кодировка, а теперь можно миллион методов использовать и может не помочь. Тут нужно уже правильно переписать и с явной кодировкой перенести БД - я это делал когда-то с написанием отдельного скрипта для работ с бекапами, жаль было это давно, поэтому не могу выложить код, но суть такая, локально у Вас может быть любая кодировка, на сервере скорей всего windows-1251, вот при бекапе таблиц, добавляйте туда кодировку utf-8 (для создания таблицы), все данные на лету перекодируйте так же в utf8 - если они не в ней, при запуске бекапа на сервере указывайте кодировку utf-8 для работы с БД:
CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3. $my_id = mysqli_connect($mysql['server'],$mysql['user'],$mysql['passwd'],$mysql['db']);
  4. mysqli_query($my_id, "SET NAMES 'utf8'");
  5. mysqli_query($my_id, "SET character_set_client = utf8");
  6. mysqli_query($my_id, "SET character_set_connection = utf8");
  7. mysqli_query($my_id, "SET character_set_results = utf8");
  8.  
  9.  
  10. $my_id= mysql_connect($mysql['server'],$mysql['user'],$mysql['passwd']);
  11. mysql_select_db($mysql['db'],$my_id);
  12. mysql_query("SET NAMES 'utf8'",$my_id);
  13. mysql_query("SET character_set_client = utf8",$my_id);
  14. mysql_query("SET character_set_connection = utf8",$my_id);
  15. mysql_query("SET character_set_results = utf8",$my_id);
  16.  
  17.  


Использовать именно utf8 , а не utf-8
(Добавление)
Да и про экранирование не забываем, а то тут оно не вышло!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB