Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Запрет использования латиницы в опред. поле при регистрации
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Запрет использования латиницы в опред. поле при регистрации
При регистрации пользователь заполняет дополнительное поле "Откуда".
И поле "Настоящее имя"
Необходимо, чтобы эти поля заполнялись только на русском.
Есть ли готовые решения?
И поле "Настоящее имя"
Необходимо, чтобы эти поля заполнялись только на русском.
Есть ли готовые решения?
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 7 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1455 раз
Re: Запрет использования латиницы в опред. поле при регистра
На коленке. ©
Для дополнительных полей профиля:
includes/functions_profile_fields.php
сменить кодировку на UTF-8 без BOM
найти
заменить на
найти
добавить после
найти
заменить на
language/ru/acp/profile.php
добавить
language/ru/ucp.php
добавить
При создании или правке дополнительного поля в админке выбираем нужную опцию в выпадающем списке «Допустимые символы».
—————————————————————————————————
Для штатного поля «Откуда»:
includes/ucp/ucp_profile.php
сменить кодировку на UTF-8 без BOM
найти
заменить на
language/ru/common.php
добавить
Для дополнительных полей профиля:
includes/functions_profile_fields.php
сменить кодировку на UTF-8 без BOM
найти
Код: Выделить всё
if (!preg_match('#^' . str_replace('\\\\', '\\', $field_data['field_validation']) . '$#i', $field_validate))Код: Выделить всё
if (!preg_match('#^' . utf8_str_replace('\\\\', '\\', $field_data['field_validation']) . '$#iu', $field_validate))Код: Выделить всё
case '[\w_\+\. \-\[\]]+':
$error = sprintf($user->lang[$cp_result . '_SPACERS_ONLY'], $row['lang_name']);
break;Код: Выделить всё
case '[-\. а-яА-Я]+':
$error = sprintf($user->lang[$cp_result . '_CYRILLIC_ONLY'], $row['lang_name']);
break;Код: Выделить всё
$validate_ary = array('CHARS_ANY' => '.*', 'NUMBERS_ONLY' => '[0-9]+', 'ALPHA_ONLY' => '[\w]+', 'ALPHA_SPACERS' => '[\w_\+\. \-\[\]]+');Код: Выделить всё
$validate_ary = array('CHARS_ANY' => '.*', 'NUMBERS_ONLY' => '[0-9]+', 'ALPHA_ONLY' => '[\w]+', 'ALPHA_SPACERS' => '[\w_\+\. \-\[\]]+', 'CYRILLIC_ONLY' => '[-\. а-яА-Я]+');добавить
Код: Выделить всё
'CYRILLIC_ONLY' => 'Только кириллица, пробел, дефис, точка',добавить
Код: Выделить всё
'FIELD_INVALID_CHARS_CYRILLIC_ONLY' => 'Поле «%s» содержит недопустимые символы, разрешены только кириллица, пробелы, точки, дефисы. Латиница и цифры запрещены.',—————————————————————————————————
Для штатного поля «Откуда»:
includes/ucp/ucp_profile.php
сменить кодировку на UTF-8 без BOM
найти
Код: Выделить всё
'location' => array('string', true, 2, 100),Код: Выделить всё
'location' => array(
array('string', true, 2, 100),
array('match', true, '#^[-\. а-яА-Я]+$#u')),добавить
Код: Выделить всё
'WRONG_DATA_LOCATION' => 'Недопустимые символы в поле «Откуда». Разрешены кириллица, пробелы, точки, дефисы. Латиница и цифры запрещены.',-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Запрет использования латиницы в опред. поле при регистра
Начал с этого:
Но не работает. Т.е. регистрация без проблем проходит с латинским названием
Добавлено спустя 2 минуты 54 секунды:
Re: Запрет использования латиницы в опред. поле при регистрации
поле штатное (location)
Nekstati писал(а):Для штатного поля «Откуда»:
Но не работает. Т.е. регистрация без проблем проходит с латинским названием
Добавлено спустя 2 минуты 54 секунды:
Re: Запрет использования латиницы в опред. поле при регистрации
поле штатное (location)
-
Пчелкин
- phpBB 3.3.0
- Сообщения: 11372
- Стаж: 16 лет 9 месяцев
- Благодарил (а): 1832 раза
- Поблагодарили: 1358 раз
Re: Запрет использования латиницы в опред. поле при регистра
Эх...рассмотреть бы да переписать все с той коленки...в блокнотик и на века ...в нетленку...Nekstati писал(а):На коленке. ©
А у меня все сработало на автобарыгах...проверил оба поля...полез еще на один форум менять...
ПыСы...а неплохо бы такую функцию в следующую версию двига впихнуть...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 7 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1455 раз
Re: Запрет использования латиницы в опред. поле при регистра
Я же пишу: «Для штатного поля». Штатно это поле отсутствует в форме регистрации, о нём нет даже упоминания в ucp_register.php, и я не представляю, как выглядит код, с помощью которого вы туда его впихнули. Это поле штатно присутствует только на вкладке «Профиль» личного раздела. А там всё работает.romeo_piter писал(а):регистрация без проблем проходит с латинским названием
romeo_piter писал(а):не работает.
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Запрет использования латиницы в опред. поле при регистра
Понял, прошу прощения, что ввел в заблуждение.Nekstati писал(а):Я же пишу: «Для штатного поля». Штатно это поле отсутствует в форме регистрации, о нём нет даже упоминания в ucp_register.php, и я не представляю, как выглядит код, с помощью которого вы туда его впихнули. Это поле штатно присутствует только на вкладке «Профиль» личного раздела. А там всё работает.
Просто поле там уже 3 года, забыл что оно дорисовывалось )))
Поле прописано в ucp_register так:
Код: Выделить всё
$data = array(
'username' => utf8_normalize_nfc(request_var('username', '', true)),
'new_password' => request_var('new_password', '', true),
[b]'location' => request_var('location', '', true),[/b]
'password_confirm' => request_var('password_confirm', '', true),
'email' => strtolower(request_var('email', '')),
'email_confirm' => strtolower(request_var('email_confirm', '')),
'lang' => basename(request_var('lang', $user->lang_name)),
'tz' => request_var('tz', (float) $timezone),
);Код: Выделить всё
// Check and initialize some variables if needed
if ($submit)
{
$error = validate_data($data, array(
'username' => array(
array('string', false, $config['min_name_chars'], $config['max_name_chars']),
array('username', '')),
'new_password' => array(
array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
array('password')),
'password_confirm' => array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
'email' => array(
array('string', false, 6, 60),
array('email')),
'email_confirm' => array('string', false, 6, 60),
[b] 'location' => array('string', false, 3, 60),[/b]
'tz' => array('num', false, -14, 14),
'lang' => array('match', false, '#^[a-z_\-]{2,}$#i'),Код: Выделить всё
$user_row = array(
'username' => $data['username'],
'user_password' => phpbb_hash($data['new_password']),
'user_email' => $data['email'],
[b] 'user_from' => $data['location'],[/b]
'group_id' => (int) $group_id,
'user_timezone' => (float) $data['tz'],
'user_dst' => $is_dst,
'user_lang' => $data['lang'],
'user_type' => $user_type,
'user_actkey' => $user_actkey,
'user_ip' => $user->ip,
'user_regdate' => time(),
'user_inactive_reason' => $user_inactive_reason,
'user_inactive_time' => $user_inactive_time,
);Код: Выделить всё
// Include the language file for the AJAX stuff
$user->setup('mods/ajaxchecks');
$template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'USERNAME' => $data['username'],
'PASSWORD' => $data['new_password'],
'PASSWORD_CONFIRM' => $data['password_confirm'],
[b]'LOCATION' => $data['location'],[/b]
'EMAIL' => $data['email'],
'EMAIL_CONFIRM' => $data['email_confirm'],-
HAMMER663
- Former team member
- Сообщения: 2032
- Стаж: 16 лет 6 месяцев
- Откуда: Зеленоград
- Благодарил (а): 77 раз
- Поблагодарили: 249 раз
Re: Запрет использования латиницы в опред. поле при регистра
Ну так замени
На
Код: Выделить всё
'location' => array('string', false, 3, 60),Код: Выделить всё
'location' => array(
array('string',false, 3, 60),
array('match', false, '#^[-\. а-яА-Я]+$#u')),-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Запрет использования латиницы в опред. поле при регистра
Уже сделал.
Спасибо.
Все отлично работает.
Nekstati, не подскажете, как к имеющимся
Спасибо.
Все отлично работает.
Nekstati, не подскажете, как к имеющимся
добавить запятые и цифры?Nekstati писал(а):Разрешены кириллица, пробелы, точки, дефисы.
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 7 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1455 раз
Re: Запрет использования латиницы в опред. поле при регистра
Заменить
на
Код: Выделить всё
[-\. а-яА-Я]+Код: Выделить всё
[-,\. 0-9а-яА-Я]+-
slavapril
- phpBB 1.4.4
- Сообщения: 126
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 18 раз
- Поблагодарили: 22 раза
Re: Запрет использования латиницы в опред. поле при регистра
А можно для штатного поля «Откуда» правки не делать, а только для имени?
-
Romnik
- phpBB 2.0.3
- Сообщения: 390
- Стаж: 15 лет 8 месяцев
- Откуда: Москва/Выдропужск
- Благодарил (а): 44 раза
- Поблагодарили: 76 раз
Re: Запрет использования латиницы в опред. поле при регистра
Мона.slavapril писал(а):А можно для штатного поля «Откуда» правки не делать, а только для имени?

