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]   

> Без описания
Kave
Отправлено: 24 Июля, 2011 - 15:56:47
Post Id


Новичок


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


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




Как победить?
Прикреплено изображение (Нажмите для увеличения)
Безымянный.jpg
 
 Top
Мелкий Супермодератор
Отправлено: 24 Июля, 2011 - 16:03:54
Post Id



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


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


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




mysql_set_charset, mysqli::set_charset, или sql запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SET names нужная_кодировка

(Отредактировано автором: 24 Июля, 2011 - 16:05:14)



-----
PostgreSQL DBA
 
 Top
Kave
Отправлено: 24 Июля, 2011 - 16:26:49
Post Id


Новичок


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


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




У меня в my.cnf:

[mysqld]
# Кодировка баз данных по умолчанию.
default-character-set = cp1251
init-connect = "set names cp1251"
skip-character-set-client-handsh ake

В браузере Windows-1251.
 
 Top
Мелкий Супермодератор
Отправлено: 24 Июля, 2011 - 16:28:56
Post Id



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


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


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




Таким образом, вы мне пытаетесь доказать, что у вас всё работает? Ну, как скажете.


-----
PostgreSQL DBA
 
 Top
Kave
Отправлено: 24 Июля, 2011 - 17:04:08
Post Id


Новичок


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


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




Нет, что тут убеждать. Не фунциклит.
Вообще у меня вот что творится в базе.
Прикреплено изображение (Нажмите для увеличения)
Безымянный.jpg
 
 Top
Мелкий Супермодератор
Отправлено: 24 Июля, 2011 - 17:11:59
Post Id



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


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


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




Тогда см. второе сообщение этой темы.


-----
PostgreSQL DBA
 
 Top
Kave
Отправлено: 24 Июля, 2011 - 17:18:58
Post Id


Новичок


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


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




Я не могу понимать с полуслова, к сожалению. На данном этапе я очень туго воспринимаю информацию.

Насколько я понял, вы мне предлагаете изменить кодировку. Но на какую?
Не могли бы вы написать всю строчку команды?
 
 Top
Мелкий Супермодератор
Отправлено: 24 Июля, 2011 - 17:36:11
Post Id



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


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


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




Из скрипта необходимо указывать кодировку, которую желается видеть в ответе.
Это или (предпочтительный вариант, но внимание на требуемые версии как PHP, так и MySQL):
mysql_set_charset и mysqli::set_charset для драйверов mysql (устаревший) и mysqli соответственно.

Или выполнение запроса штатными средствами драйвера (mysql_query, да mysqli::query):
CODE (SQL):
скопировать код в буфер обмена
  1. SET names нужная_кодировка

Вместо нужная_кодировка подставляется желаемая кодировка, utf8 или cp1251, например.


-----
PostgreSQL DBA
 
 Top
Kave
Отправлено: 24 Июля, 2011 - 18:23:04
Post Id


Новичок


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


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




Я не могу понять, как пользоваться set_charset.

Смотрю в мануал:
http://www.php.net/manual/en/mys....set-charset.php
Почему я возвращает тип boolean?
Почему во всех примерах задание кодировки идет в условном операторе.
Посерфил - нигде не могу найти без всякого условия.

Попробовал вставить, как в примере из мануала, - с условием.
Опять облом.

Может быть, вы мне подскажете, как модифицировать мой код?

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3.   <title>Магазин "Буквофил" – Результаты поиска</title>
  4. </head>
  5. <body>
  6. <h1>Магазин "Буквофил" - Результаты поиска</h1>
  7. <?php
  8.  // создание коротких имен переменных
  9.  $searchtype = $_POST['searchtype'];
  10.  $searchterm = trim($_POST['searchterm']);
  11.  
  12.  if (!$searchtype || !$searchterm) {
  13.     echo 'Вы не ввели параметры поиска. Вернитесь' .
  14.          ' на предыдущую страницу и повторите ввод.';
  15.     exit;
  16.  }
  17.  
  18.    $searchtype = addslashes($searchtype);
  19.    $searchterm = addslashes($searchterm);
  20.  }
  21.  
  22.  @ $db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');
  23.  $errn = mysqli_connect_errno();
  24.     echo 'Ошибка: Не удалось установить соединение' .
  25.          ' с базой данных. Повторите попытку позже.';
  26.     exit;
  27.  }
  28.  
  29. mysqli::set_charset("cp1251");
  30.  
  31.  $query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
  32.  $result = $db->query($query);
  33.  $num_results = $result->num_rows;
  34.  echo "<p>Найдено книг: ".$num_results."</p>";
  35.  
  36.  for ($i = 0; $i < $num_results; $i++) {
  37.     $row = $result->fetch_assoc();
  38.     echo "<p><strong>".($i+1).". Название: ";
  39.     echo htmlspecialchars (stripslashes($row['title']));
  40.     echo "</strong><br />Автор: ";
  41.     echo stripslashes($row['author']);
  42.     echo "<br />ISBN: ";
  43.     echo stripslashes($row['isbn']);
  44.     echo "<br />Цена: ";
  45.     echo stripslashes($row['price']);
  46.     echo "</p>";
  47.  }
  48.  
  49.  $result->free();
  50.  $db->close();
  51. ?>
  52.  
  53. </body>
 
 Top
Мелкий Супермодератор
Отправлено: 24 Июля, 2011 - 18:49:56
Post Id



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


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


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






-----
PostgreSQL DBA
 
 Top
Kave
Отправлено: 24 Июля, 2011 - 19:09:16
Post Id


Новичок


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


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




Вот так? Не изменилось ничего.

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3.   <title>Магазин "Буквофил" – Результаты поиска</title>
  4. </head>
  5. <body>
  6. <h1>Магазин "Буквофил" - Результаты поиска</h1>
  7. <?php
  8.  // создание коротких имен переменных
  9.  $searchtype = $_POST['searchtype'];
  10.  $searchterm = trim($_POST['searchterm']);
  11.  
  12.  if (!$searchtype || !$searchterm) {
  13.     echo 'Вы не ввели параметры поиска. Вернитесь' .
  14.          ' на предыдущую страницу и повторите ввод.';
  15.     exit;
  16.  }
  17.  
  18.    $searchtype = addslashes($searchtype);
  19.    $searchterm = addslashes($searchterm);
  20.  }
  21.  
  22.  @ $db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');
  23.  $db->set_charset("cp1251");
  24.  $errn = mysqli_connect_errno();
  25.     echo 'Ошибка: Не удалось установить соединение' .
  26.          ' с базой данных. Повторите попытку позже.';
  27.     exit;
  28.  }
  29.  
  30.  $query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
  31.  $result = $db->query($query);
  32.  $num_results = $result->num_rows;
  33.  echo "<p>Найдено книг: ".$num_results."</p>";
  34.  
  35.  for ($i = 0; $i < $num_results; $i++) {
  36.     $row = $result->fetch_assoc();
  37.     echo "<p><strong>".($i+1).". Название: ";
  38.     echo htmlspecialchars (stripslashes($row['title']));
  39.     echo "</strong><br />Автор: ";
  40.     echo stripslashes($row['author']);
  41.     echo "<br />ISBN: ";
  42.     echo stripslashes($row['isbn']);
  43.     echo "<br />Цена: ";
  44.     echo stripslashes($row['price']);
  45.     echo "</p>";
  46.  }
  47.  
  48.  $result->free();
  49.  $db->close();
  50. ?>
  51.  
  52. </body>
  53. </html>
  54.  
 
 Top
Frants
Отправлено: 11 Марта, 2012 - 14:30:16
Post Id


Новичок


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


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




Занимаюсь по той же книге, что и автор темы, и на том же этапе, в том же уроке та же проблема! Разве что я в utf8 все делаю.
Ну почему не работает, ребята?! 4-й день пытаюсь решить эту проблему, каракули лезут и лезут Огорчение Огорчение Огорчение
 
 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