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]   

> Без описания
event
Отправлено: 20 Января, 2012 - 16:24:23
Post Id


Частый посетитель


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


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




Имеется скрипт:
PHP:
скопировать код в буфер обмена
  1. $dt = date("Y-m-d H:i:s");
  2. $result = mysql_query("SHOW TABLE STATUS LIKE 'news'");
  3. $row = mysql_fetch_array($result);
  4. $id = $row['Auto_increment'];
  5.  
  6. $subject = htmlspecialchars($_POST['subject']);
  7. $name = htmlspecialchars($_POST['name']);
  8. $text = htmlspecialchars($_POST['text']);
  9.  
  10. $subject = htmlspecialchars($_POST["subject"]);
  11. if (!$subject)
  12. bark("Вы не ввели заголовок, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  13.  
  14. $name = htmlspecialchars($_POST["name"]);
  15. if (!$name)
  16. bark("Вы не ввели имя добавившего новость, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  17.  
  18. $text = htmlspecialchars($_POST["text"]);
  19. if (!$text)
  20. bark("Вы не ввели текст (сообщение), вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  21.  
  22. $subject = unesc($subject);
  23. if (strlen($subject) < 3)
  24. bark("Заголовок должен составляться с 3 символов и более, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  25.  
  26. $name = unesc($name);
  27. if (strlen($name) < 3)
  28. bark("Имя добавившего новость должно составляться с 3 символов и более, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  29.  
  30. $text = unesc($text);
  31. if (strlen($text) < 50)
  32. bark("Текст (сообщение) новости должно составляться с 50 символов и более, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  33.  
  34. $subject = unesc($subject);
  35. if (strlen($subject) > 50)
  36. bark("Заголовок имеет очень много символов, максимально разрешено 100 символов, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  37.  
  38. $name = unesc($name);
  39. if (strlen($name) > 100)
  40. bark("Имя добавившего новость имеет очень много символов, максимально разрешено 16 символов, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  41.  
  42. $text = unesc($text);
  43. if (strlen($text) > 3000)
  44. bark("Текст (соообщение) новости имеет очень много символов, максимально разрешено 3000 символов, вернитесь <a href=\"javascript:history.go(-1);\">назад</a> пожалуйста.");
  45.  
  46. $ret = mysql_query("INSERT INTO news (id, subject, username, text) VALUES ('".$id."','".$subject."','".$name."','".$text."')"); #or die(mysql_error());
  47.  
  48. if($ret){
  49. stdhead("Добавление новой новости");
  50. stdmsg("Успешно","Ваша новость успешно размещена, сейчас Вы будете переадресованы на страничку с вашей новостью.<meta http-equiv='refresh' content='2; URL=#".$id."'>");
  51. }else{
  52. stdmsg("Ошибка","При добавлние новости произошла ошибка, сообщите администратору ".$config['login']."","error");
  53. }
  54.  
  55. stdfoot();


В итоге все работает, но текст в базу записывается не в той кодировке.
База в UTF-8, файлы тоже в UTF-8....
 
 Top
Bio man
Отправлено: 20 Января, 2012 - 17:17:28
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




mysql_query("SET NAMES 'utf-8'");
или
mysql_set_charset('utf-8');
 
 Top
etoYA
Отправлено: 20 Января, 2012 - 17:22:35
Post Id



Участник


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


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




mysql_query("set character_set_client='utf8'");
mysql_query("set character_set_results='utf8'");
mysql_query("set collation_connection='utf8_general_ci'");
 
 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