| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Непонятная проблема с кодировкой |
| Автор: tikitiki 24.6.2012, 21:34 |
| Приветствую. Долго мучался. Решил написать сюда. Много перепробовал, но проблема не исчезает. Скрипт писал аккуратно. Есть в нём часть, отвечающая за авторизацию. Там простая форма авторизации.Проблема с ней. Кодировка скрипта windows-1251. Внутренняя кодировка mysql cp1251. Сопоставление соединения cp1251_general_ci. Ошибка такова: занёс в ручную логин и пароль в бд "q" и "q" соответственно. Когда вводишь их в форме, то скрипт пишет "не правильная пара "логин-пароль"". А если ввести логин "й" и пароль "й", то происходит успешная авторизация. Скорее всего utf8 и cp1251 перепутались местами. Пробовал менять кодировку скрипта, кодировку данных формы авторизации, перекодировку полученных данных из этой формы в др. скрипте. В результате ошибка осталась именно такой, какой и была. Стоит denwer3. Думаю, что ошибка в скрипте, но где? |
| Автор: targetkeeper 24.6.2012, 22:09 |
| На сто процентов не уверен, но думаю что нет связи между символами "й" и "q", кроме того, что они набираются одной клавишей. Отсюда, наверное, и стоит начать поиск проблемы. Попробуйте по новой вбить все данные с отключенным PuntoSwitcher и прочими программами, способными влиять на раскладку. Чтобы до конца отсечь вероятность проблем с utf8, еще три варианта: 1. Форма не передается через ajax? Если передается обычным запросом, то все нормально. 2. В firefox сайт открывается нормально? Если без проблем с кодировкой, то в конфиге апача стоит кодировка по-умолчанию cp1251 или вообще не установлена - тоже все нормально. 3. Проверьте кодировку базы данных, таблицы и используемых полей таблицы. |
| Автор: Aliance 25.6.2012, 09:41 |
| Если проблема в скрипте, передающем данные через ajax, то у меня была аналогичная проблема. Напишите так ли это, стоит ли мне искать тогдатошнее решение. |
| Автор: tikitiki 26.6.2012, 05:50 | ||
| to targetkeeper, 1) Ajax не используется. 2) В firefox открывается нормально. В конфиге apache стоит:
3) Везде кодировка cp1251_general_ci. Пока ошибка остаётся та же. |
| Автор: ikamen 5.8.2012, 07:44 |
| у меня постоянно проблемы с кодировкой, приходится все сообщения в пхп коде писать на англ...думал что сохраняю не в той кодировке...перепробовал все но никак |
| Автор: kuzyait 2.2.2013, 19:13 |
| когда подключитесь к базе - делайте сразу запрос : mysql_query("/*!40101 SET NAMES 'cp1251' */") or die("Error codirovka: )". mysql_error()); т.е. устанавливаете нужную кодировку. |