Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> проверка на кирилицу 
V
    Опции темы
Нурик Сакура
Дата 20.3.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Нашел в Инете скрипт регистрации, все отлично пашет, кое-что свое подобавлял, но столкнулся с одной проблемой - регистрироваться под русским ником нельзя. А в проекте, который я планирую создать, это просто необходимо. В скрипте есть функция field_validator(), которая проверяет поля на правильность и если все правильно - записывает в БД. Так вот, там есть такой вот код:

Код

$data_types=array(
            "email"=>$email_regexp,
            "digit"=>"^[0-9]$",
            "number"=>"^[0-9]+$",
            "alpha"=>"^[a-zA-Z]+$",
            "alpha_space"=>"^[a-zA-Z ]+$",
            "alphanumeric"=>"^[a-zA-Z0-9]+$",
            "alphanumeric_space"=>"^[a-zA-Z0-9 ]+$",
            "string"=>""
         );

Как мне в alpha и производные добавить поддержку кирилицы? Попытался просто добавить "а-яА-Я", но не помогло smile . Я в этом деле полный Незнайка, потому обращаюсь к вам. Если тема уже была - прошу меня извинить, я не нашел. Или просто не понял, что именно те темы мне нужны.

добавлено позже
Сейчас вот подумал, что эта тема может быть немного не по адресу, но уже поздно. Я про БД думал, потому сюда и написал.

Это сообщение отредактировал(а) Nurik - 20.3.2006, 16:30
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
CyClon
Дата 20.3.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 1
Всего: 4



Добавть в квадратные скобки:

А-Яа-я

или просто

а-Я


--------------------
user posted image
PM   Вверх
Нурик Сакура
Дата 20.3.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Цитата(CyClon @ 20.3.2006, 14:55 Найти цитируемый пост)
Добавть в квадратные скобки:

А-Яа-я

или просто

а-Я

Извини, в какие квадратные скобки? в [a-zA-Z]? Я же написал, что пробовал - не помогает.
Добавлено @ 15:21
Поправка. Я добавлял "а-яА-Я". Это не помогло. Добавил "а-Я", и у меня скрипт матернулся:
Код

Warning: ereg() [function.ereg]: REG_ERANGE in W:\www\game\auth\functions.php on line 148

Вот строка 148:
Код

$field_ok = ereg($data_types[$field_type], $field_data);

--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
wsr
Дата 20.3.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Ты уверен, что именно в alpha нужно. попробуй добавить во все поля и посмотри на результат. А вообще, это правильно [a-zA-Zа-яА-Я]
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Нурик Сакура
Дата 20.3.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Да, я уверен, что именно в альфа нужно, потому что передается:
Код

field_validator("login name", $_POST["login"], "alphanumeric", 4, 15);

--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Ciber SLasH
Дата 20.3.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Всё работает, вот пример:
Код

echo ereg("^[a-zA-Zа-яА-Я0-9 _]+$", "Мега 1_2 ник");

PM   Вверх
Нурик Сакура
Дата 20.3.2006, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Ciber SLasH, запустил твою строку в отдельном файле в результате вывело просто число 1 и все.
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Нурик Сакура
Дата 20.3.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Кстати, если в БД поменять вручную логин на русский - то тоже выдает ошибку, говорит, что логин не правильный.
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Ciber SLasH
Дата 20.3.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Тогда могу посоветовать перевести все файлы в кодировку UTF-8 и тогда будет работать такой код:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=utf-8'>
</head>

<body>
<?php echo preg_match("/^[a-zA-Zа-яА-Я0-9 _]+$/u", "Меганик"); ?>
</body>
</html>

PM   Вверх
Нурик Сакура
Дата 20.3.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Не работает. Матерится на 9 строку твоего кода
Код

Warning: preg_match() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 9 in W:\www\game\auth\nur.php on line 9

--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
wsr
Дата 21.3.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Цитата(Nurik @ 20.3.2006, 15:26)
Да, я уверен, что именно в альфа нужно, потому что передается:
Код

field_validator("login name", $_POST["login"], "alphanumeric", 4, 15);

Ну ты уж определись, что у тебя alpha, а что alphanumeric. И добавь во все проверки и помотри, нефига гемороиться.

Код

echo ereg("^[a-zA-Zа-яА-Я0-9 _]+$", "Мега 1_2 ник");

Выводит 1 потому, что результатом выполнения этой операции будет TRUE или FALSE т.е. если Удовлетворяет регулярке, то TRUE иначе FALSE. Это собственно все в мануале написано.

Или выкладывай весь код полностью.!
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Ciber SLasH
Дата 22.3.2006, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Nurik @ 20.3.2006, 17:01 Найти цитируемый пост)
Не работает. Матерится на 9 строку твоего кода

Это потому, что у тебя исходник не в кодировке UTF-8. Я же написал... сконвертируй все свои скрипты в кодировку UTF-8 и пропиши соответствующий META-тэг.
PM   Вверх
Нурик Сакура
Дата 22.3.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Цитата(wsr @ 21.3.2006, 22:43 Найти цитируемый пост)
Ну ты уж определись, что у тебя alpha, а что alphanumeric. И добавь во все проверки и помотри, нефига гемороиться.

Я во все добавлял. Если ты не заметил чуток выше я писал про alpha и производные.

Цитата(wsr @ 21.3.2006, 22:43 Найти цитируемый пост)
Выводит 1 потому, что результатом выполнения этой операции будет TRUE или FALSE т.е. если Удовлетворяет регулярке, то TRUE иначе FALSE. Это собственно все в мануале написано.

Извини, я с регулярными выражениями никогда еще не работал. Почитал сейчас мануал, буду пытаться разобраться.

Цитата(Ciber SLasH @ 22.3.2006, 03:14 Найти цитируемый пост)
Это потому, что у тебя исходник не в кодировке UTF-8. Я же написал... сконвертируй все свои скрипты в кодировку UTF-8 и пропиши соответствующий META-тэг.

Я скопировал твой код, вставил в отдельный файл, сохранил, запустил в браузере. Выдало ошибку с матами на 9 строку. Где еще ему мета-тег прописать?
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Ciber SLasH
Дата 23.3.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Nurik @ 22.3.2006, 18:00 Найти цитируемый пост)
Я скопировал твой код, вставил в отдельный файл, сохранил, запустил в браузере

Сохранять нужно в кодировке UTF-8 !!
PM   Вверх
Нурик Сакура
Дата 23.3.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: нет
Всего: 2



Все, я понял. Я просто не раздуплился, что самому файлу нужно указать кодировку.
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0635 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.