Символы в логине при регистрации

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 rbooze » 08.07.2014, 17:34

Прошу подсказки. В настройках "регистрация пользователей" есть опции "любые буквы и цифры" а так же "любые буквы, цифры и разделители". Я хочу убрать возможность использования точек, запятых и прочих символов в никах, но оставить возможность использовать пробел, для ников из двух слов например. Как это можно сделать?

И можно ли запретить капс?
rbooze
Автор темы
Аватара
Репутация: 95
С нами: 10 лет 7 месяцев

Сообщение #2 VEG » 08.07.2014, 19:04

А разве «любые буквы и цифры» запрещает пробел? Капс без правки исходных кодов запретить нельзя. А вообще в качестве разделителей там немного символов разрешается использовать: точки, -, и _. Точки нужны, например, в никах типа: Лукашенко А. Г., дефис нужен в никах типа Парам-пам-пам (хорошего примера не придумал, но есть имена, пишущиеся через дефис), ну а знак подчёркивания в программерских никах :) Ещё по-хорошему нужно апостроф разрешить, для ников типа Д’Артаньян. Кстати да, надо будет исправить эту недоработку, обидели д’Артаньяна :)

Добавлено спустя 19 минут 22 секунды:
В файле functions_user.php ищите код:
Код: Выделить всё
   switch ($config['allow_name_chars'])
   {
      case 'USERNAME_CHARS_ANY':
         $pcre = true;
         $regex = '.+';
      break;

      case 'USERNAME_ALPHA_ONLY':
         $pcre = true;
         $regex = '[A-Za-z0-9]+';
      break;

      case 'USERNAME_ALPHA_SPACERS':
         $pcre = true;
         $regex = '[A-Za-z0-9-_. ]+';
      break;
Тут в регулярках вы можете задать любые наборы символов.

Добавлено спустя 5 минут 39 секунд:
Только выберите правильную ветку в switch, тут прописаны регулярки для всех поддерживаемых способов валидации в phpBBex. Для вашей задачи нужно редактировать этот код:
Код: Выделить всё
      case 'USERNAME_LETTER_NUM_SPACERS':
         if ($pcre)
         {
            $regex = '[-_. \p{Lu}\p{Ll}\p{N}]+';
         }
         else if ($mbstring)
         {
            $regex = '[-_. [:upper:][:lower:][:digit:]]+';
         }
         else
         {
            $pcre = true;
            $regex = '[-_. a-zA-Z0-9]+';
         }
Получится такое:
Код: Выделить всё
      case 'USERNAME_LETTER_NUM_SPACERS':
         if ($pcre)
         {
            $regex = '[ \p{Lu}\p{Ll}\p{N}]+';
         }
         else if ($mbstring)
         {
            $regex = '[ [:upper:][:lower:][:digit:]]+';
         }
         else
         {
            $pcre = true;
            $regex = '[ a-zA-Z0-9]+';
         }
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #3 rbooze » 08.07.2014, 19:32

VEG:А разве «любые буквы и цифры» запрещает пробел?

Запрещает

VEG:В файле functions_user.php ищите код:

Ок, спасибо!

Добавлено спустя 19 минут 17 секунд:
Сделал немного по другому, добавил пробел в выражение case 'USERNAME_LETTER_NUM':

Работает!
rbooze
Автор темы
Аватара
Репутация: 95
С нами: 10 лет 7 месяцев


Вернуться в Поддержка 1.x



cron