![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Нурик Сакура |
|
||||||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
Значит так. Вот что я только что напроверял. Вынес проверку поля в отдельный файл и запустил. Все заработало. А вот в файле регистрации не хочет (оба файла в кодировке ANSI).
Вот запрос к функции после нажатия на кнопку "Зарегаться":
Вот ПОЛНЫЙ код всей функции field_validator:
При передаче в поле $_POST["login"] из формы логина "Нурик" выводится сообщение: "Please enter a valid $field_descr." А вот вынесенная в отдельный файл проверка:
Все отлично работает и выводит единицу. Это сообщение отредактировал(а) Nurik - 23.3.2006, 15:35 --------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
||||||
|
|||||||
| madFobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.12.2005 Репутация: нет Всего: 3 |
Вобщем, не мучайся. Самое простое это вместо А-Яа-я использовать \x7F-\xFF, это шестнадцатеричные коды русских букв (хотя я не уверен, что их ereg поддерживате, вот preg_match точно).
Другой вариант заключается в том, что все проверки строк основаны на текущей локали, так что выстави setlocalce(LC_ALL, 'rus') //Название локалей надо на хостинге смотреть или хотя бы проверь какая у тебя стоит на сравнение строк с помощью:
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Модератор: а при чем тут Базы Данных? Что, не может отличить текстовую информацию от БД? Перенесено.
|
|||
|
||||
| Нурик Сакура |
|
||||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
Вобщем, сейчас вот вернулся к этому вопросу. Кажется, у меня получилось найти решение.
Во-первых, у меня в php.ini стояло раньше не default_charset = "utf8", а что-то другое, потому русский язык не поддерживался и приходилось писать все на английском. Сейчас поставил и все пашет как надо. Во-вторых, разобрался наконец-то с регуляркой. Теперь можно спокойно делать русский ник и он будет выводиться на экран нормально.
Для тех, кто не заметил разницы, обьясняю. Ввиду того, что логин у меня должен быть только на английском, а имя может содержать и русские символы, мне пришлось продублировать записи в масиве $data_types, указав для русского нужные символы. Проверять после этого стало все успешно регистрировать. Но при выводе из БД выдавало "???" вместо имени. Еще вчера я столкнулся с проблемой кодировки текста от пользователя, потому сделал ф-цию mk_txt (просто для удобства):
И теперь перед каждым вводом и выводом инфы, которая может быть на русском, я юзаю эту ф-цию. Все пашет идеально =) Юзайте, кому нужно, авось поможет. --------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Вот как раз при utf8 русский замечательно поддерживается. Изврат. Надо настроить нормально кодировку БД и установить лоакаль setlocale |
|||
|
||||
| Нурик Сакура |
|
|||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
Мм.. Ты не понял, у меня стояло НЕ utf8, а что-то другое, я не помню уже что. Я поставил utf8 и все запахало. Что касается кодировки БД, то там стоит utf8_unicode_ci. Но почему-то при вставке русского языка получается фигня какая-то.
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
||||
|
||||
| Нурик Сакура |
|
|||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
Сейчас проверю.
Добавлено @ 14:42 Посмотрел. Поменял в БД везде кодировку на uft8_general_ci и все заработало без ф-ции mk_txt =) Сейчас еще проверю отправку ПМок, если все работает - то тогда тема точно решена =) --------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
|||
|
||||
| Нурик Сакура |
|
|||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
С ПМками проблема. Вобщем, вот та часть кода, которая отвечает за запись данных в БД:
Через форму передаются данные для записи в БД. В БД почему-то записывается не в таком формате "Íàçàð÷èê", как было записано русское имя персонажа, а вот в таком формате "Ëîëü÷èê". А при выводе получается не русский текст, а вот такая вот "Ïðèâåòèê" канитель Это сообщение отредактировал(а) Нурик Сакура - 13.1.2007, 15:01 --------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
|||
|
||||
| Нурик Сакура |
|
|||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
Я уже разобрался, что вся беда в htmlentities(), который русский текст превращает на то, что вставляется в БД. Но без него ведь никак... Или как-то по другому придется фильтровать то, что юзеры передают...
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
|||
|
||||
| Нурик Сакура |
|
||||
|
Почти японец... ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 17.12.2004 Где: Украина, Киев Репутация: нет Всего: 2 |
Как ни странно, но мануал мне помог решить проблему =)
Поставил вместо просто
вот такой вот вариант
и все заработало. Вобщем, все вопросы решены. --------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing |
||||
|
|||||
| madFobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.12.2005 Репутация: нет Всего: 3 |
Объясните мне одну вещь. Насколько я знаю проблемы с выводом символов ??? связаны с тем, что phpmysql библиотека использует по умолчанию кодировку latin для коннекта к базе, и с этим настройками кодировки самой базы ничего поделать нельзя. Или кодировка phpmysql зависит от default_charset в php.ini?
Это сообщение отредактировал(а) Mal Hack - 15.1.2007, 10:46 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |