Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: кодировка (украинский)

Сообщения:  [1-8] 

 
 автор: ronin   (16.03.2007 в 11:55)   письмо автору
 
   для: Trianon   (16.03.2007 в 11:48)
 

Понял, исправлю.

   
 
 автор: Trianon   (16.03.2007 в 11:48)   письмо автору
 
   для: ronin   (16.03.2007 в 11:23)
 

при выводе никакое экранирование делать не нужно.
При выводе нужно делать кодирование спецсимволов html при отображении чистого текста.
htmlspecialchars()

   
 
 автор: ronin   (16.03.2007 в 11:23)   письмо автору
 
   для: Trianon   (16.03.2007 в 10:49)
 

Спасибо! Докладываю: да, при вводе нужно сделать как Вы и говорили, тогда в базу текст ложится без слешей, нужно также этот код использовать и при выводе.Спасибо за помощь!

   
 
 автор: Trianon   (16.03.2007 в 10:49)   письмо автору
 
   для: ronin   (16.03.2007 в 10:40)
 

У Вас экранирование дважды выполнялось.

Блок

if (!get_magic_quotes_gpc()) 
  { 
    $name = mysql_escape_string($_POST['name']); 

  } 

поменяйте на блок

$name = $_POST['name'];
if (get_magic_quotes_gpc()) 
    $name = stripslashes($name);

   
 
 автор: ronin   (16.03.2007 в 10:40)   письмо автору
 
   для: Trianon   (16.03.2007 в 10:06)
 

Это ввод


mysql_query("SET NAMES 'cp1251'"); 
 if (!get_magic_quotes_gpc())
  {
    $name = mysql_escape_string($_POST['name']);

  }

  mysql_query("SET NAMES 'cp1251'");
$an_list  = explode('#', $name);
$query = "insert into books ( name,rubrica,putdate) values";
$sep = ' ';
foreach($an_list as $n => $anno)
{
  $anno = trim($anno);
  if(!empty($anno))
  {
    $anno = mysql_escape_string($anno);
    $query .= "\r\n$sep('$anno', $rubrica, NOW())";
    $sep = ',';
  }
}

$result = mysql_query($query);

При этом при выводе поменял, как сказал Хеопс 'cp1251_ukrainian_ci'
поменял кодировку и в phpmyadmin в поле name 'cp1251_ukrainian_ci'
все равно апострофы экранируются.

   
 
 автор: Trianon   (16.03.2007 в 10:06)   письмо автору
 
   для: ronin   (15.03.2007 в 19:13)
 

строка mysql_query("SET NAMES 'cp1251'"); и блок строк

mysql_query ("set character_set_client='cp1251'"); 
mysql_query ("set character_set_results='cp1251'"); 
mysql_query ("set collation_connection='cp1251_general_ci'"); 

фактически равнозначны.

конструкция

if (!get_magic_quotes_gpc()) 
  { 
    $name = mysql_escape_string($_POST['name']); 
  } 

- это явный баг, либо Вы криво цитируете собственный исходник.

Было бы неплохо глянуть на код, которым Вы добавляете входные данные в таблицу, и код, которым выводите их оттуда наружу. Код Вы не привели, а без него что-то говорить об ошибках трудно.

Правильная сортировка - дело хорошее, но кодовая страница-то одинаковая во всех четырех языках, так что дело явно не в ней.

   
 
 автор: cheops   (16.03.2007 в 00:55)   письмо автору
 
   для: ronin   (15.03.2007 в 19:13)
 

Если текст на украинском, то зачем используете cp1251_general_ci? Используете сортировку cp1251_ukrainian_ci.

   
 
 автор: ronin   (15.03.2007 в 19:13)   письмо автору
 
 

у меня такие проблемы: 1)при выводе текста из БД у меня у телефонов пропадают черточки 244-22-22 у меня становится - 244 22 22 при переносах номер разрывется.2) так как текст на украинском то апострафы ’ экранируются

обов\'язково

ввод производится так:

if (!get_magic_quotes_gpc())
  {
    $name = mysql_escape_string($_POST['name']);

  }
 mysql_query("SET NAMES 'cp1251'"); 

без последней строчки в базу ложиться только: ??????????????????????
а вывод -

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

без них тоже выводиться: ?????????????????????

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования