Специальное предложение!   Домен  на 2 года всего 199 грн!   Доменная зона   со скидкой 50% *
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. Кодировка в MySQL

Форумы MySQL Кодировка в MySQL
Neverov
04.07.2016 12:27
хостинг: есть
домен: есть
Кодировка в MySQL
Сделал всё как пишут на форумах.
1) Все php фалы настроены в NotePad++ на utf-8 без bom
2) В html страницах везде прописано meta charset= utf-8
3) Все возможные функции по определению кодировки в PHP выдают что строки которые пишутся в БД в кодировке utf-8
4) В phpMeAdmin во всех настройках таблиц стоит utf-8 general ci
6) На всякий случай в код PHP добавлял строки:
mysql_set_charset( 'utf8' );
iconv( 'cp1251', 'utf-8', $_POST['message'] );
И всё равно вот такой бред (картинка 2)
Кто-то может чем-то помочь ?
Т.е. в phpMeAdmin отображаются иероглифы, а если вывести запись на сайт то отображается как надо.
Прикрепленные файлы:
toxi
04.07.2016 12:39
хостинг: есть
домен: есть
Скрипт уже изначально в базу записывает данные в неверной кодировке судя по второму скриншоту.
Попробуйте сделать примерно так:
// Подключаемся к mysql серверу
        mysql_query("set character_set_client='utf8'");
        mysql_query("set character_set_results='utf8'");
        mysql_query("set collation_connection='utf8_general_ci'");

либо, если используете PDO:
$db = new PDO('mysql:host=localhost; port=3306; dbname=something', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

А еще все html файлы тоже сохранить в utf8 без bom в дополнение к charset в тегах head.
Закомментируйте или уберите:
iconv( 'cp1251', 'utf-8', $_POST['message'] );
Neverov
04.07.2016 12:43
хостинг: есть
домен: есть
Сделал. У меня нет HTML файлов, только php
Не помогло. Разве не должна была эта строчка решить проблему (iconv( 'cp1251', 'utf-8', $_POST['message'] );) ?
Neverov
04.07.2016 12:51
хостинг: есть
домен: есть
iconv( 'cp1251', 'utf-8', $_POST['message'] );
Убрал её изначально не было. Один из советов на форуме. Не реагирует на это никак.
PDO не использую. Первый раз вижу ))
toxi
04.07.2016 13:14
хостинг: есть
домен: есть
Это какая-то готовая CMS либо самописная?
Neverov
04.07.2016 13:33
хостинг: есть
домен: есть
Самописная.
Просто, всё что мог найти найти по данной теме на форумах уже применил.
Единственное что нету доступа к Файл конфигурации MySQL: my.cnf ((
info620
04.07.2016 14:16
хостинг: есть
домен: есть
Если вам нужна
iconv( 'cp1251', 'utf-8', $_POST['message'] );

Тогда что-то не так. Совсем не так.

В phpMeAdmin во всех настройках таблиц стоит utf-8 general ci © Neverov

А на колонках? MySQL позволяет задать для колонки свою кодировку.

С какой кодировкой отправляеться форма? Ее можно ж тоже поменять :)

Линк на страничку дадите?)
Neverov
04.07.2016 14:20
хостинг: есть
домен: есть
Там внизу:
$Row5 - переменную ввел в БД на русском через phpMyAdmin
$Row6 и $Row7 - переменные вводились в БД на русском с формы сайта

Регулярка на всех полях пока стоит такая !ereg("^[a-zA-zа-яА-Я_]{1,35}$". Это если вдруг номер телефона в цифрах вбивать будете ))

"С какой кодировкой отправляеться форма? Ее можно ж тоже поменять :)"
Не знаю, сайт в кодировке UTF-8 а как задать кодировку форме я не знаю.
(в .htaccess ".AddDefaultCharset utf-8"
в начале кода php "header("Content-Type: text/html; charset=utf-8");"
и в мета "meta charset="utf-8" /" обратную черту ставлю несмотря на то что сайт типа в HTML5, потому что нравится ))) Встречал на форумах что полезно.)
Прикрепленные файлы:
Neverov
04.07.2016 15:31
хостинг: есть
домен: есть
Если в БД вбить на русском текст и вывести на сайт то вот такая фигня. (рисунок ниже)
Дайте мне доступ к Файл конфигурации MySQL: my.cnf !!!
Или идти бубен покупать ))
Прикрепленные файлы:
Илья
04.07.2016 15:57
хостинг: есть
домен: есть
1
Есть подозрение, что вы используете для работы с БД библиотеку mysqli, а настройки передаете mysql функциями. Поэтому все и не работает. Запросы идут через одну библиотеку, а настройки через другую.
Исправьте все mysql_query на mysqli_query
Neverov
04.07.2016 16:06
хостинг: есть
домен: есть
Всё решилась, проблема
mysqli_set_charset($CONNECT, "utf8");
И чего это строчка такая секретная ??? Весь день убил на решение этой проблемы.
И всё таки я не понимаю почему без неё не работает нормально.
info620
04.07.2016 17:29
хостинг: есть
домен: есть
1
И всё таки я не понимаю почему без неё не работает нормально.
© Neverov

mysql, mysqli, pdo - три независимые друг от друга библиотеки доступа. Использовать нужно только одну.
Более того у mysqli есть как ООП так и процедурный вариант и пересекать их нельзя.

P.S. я думаю будет полезно прочитать и зазубрить PHP: The Right Way
Neverov
04.07.2016 19:33
хостинг: есть
домен: есть
Будущее за ООП ??? )))
info620
05.07.2016 08:42
хостинг: есть
домен: есть
1
Будущее за ООП ??? ))) © Neverov


Нет конечно, будущее за мозгами)

Я надеюсь вы понимаете что ООП - просто еще один инструмент. Что-то удобней реализовать в процедурном стиле что то удобней в ООП. И для новичков не рекомендуется их соединять - либо все в одном либо все в другом.

Лагерь воинственных процедурников: Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ]
Neverov
05.07.2016 09:08
хостинг: есть
домен: есть
1
Ну мозги само собой.
Да понимаю, просто много уже встречал про ООП и в основном что то типа (это новый этап в развитии программирования). Но успел заметить что для простых задач он слишком сложный.
Спасибо за статейку, очень интересная.
info620
05.07.2016 12:10
хостинг: есть
домен: есть
Но успел заметить что для простых задач он слишком сложный. © Neverov

Не только. "Узкие участки" которые создают самую большую нагрузку просто переписав в процедурном стиле без глобальной смени логики можно ускорить - пропадет оверхед что появляется при использование классов и т.п. но такой код сложней поддерживать. А вообще ето очень обширная тема ;)
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города