@ZaxapKramer
Больной верстальщик

Какие символы разрешить в логине (имени пользователя)?

Есть 2 варианта:
// Буквы латинского алфавита и цифры:
$regex_name1 = '/^[a-zA-Z0-9]+$/';
// Все, что в первом варианте, дефис (-), точка (.), знак нижнего подчеркивания (_):
$regex_name2 = '/^[a-zA-Z0-9-._]+$/';

Также есть 3 вариант - второй вариант, в котором логин не может начинаться со знака (дефиса, точки или подчеркивания), а также не может использоваться больше 2-х знаков подряд:
$regex_name3 = '/^(?![_.])(?!.*[-_.]{2})[a-zA-Z0-9-._]+(?<![-_.])$/';


Склоняюсь больше к первому варианту, но думаю, что он весьма ограничен. Третий вариант - улучшенный второй, но легко и просто донести его до пользователя (не заставляя его читать, как минимум, 1 строчку текста при регистрации) - это иррационально.

Хочу услышать ваше мнение по этому поводу. Заранее спасибо!
  • Вопрос задан
  • 20676 просмотров
Решения вопроса 3
trevoga_su
@trevoga_su
xpoint.ru/forums/programming/theory_algorythms/thr...
xpoint.ru/forums/internet/theory/thread/22534.xhtml

никакого стандарта на это нет. упор в любых проверках делается на то, бы пользователь не вводил логин/пароль в стиле ^vasya_$123#*& а потом забывал свои логины/пароли.
стандартного алфавита a-z0-9 с парой символов для разделения (- или _) вполне хватит на много миллионов пользователей.
Ответ написан
Комментировать
@Akela_wolf
Extreme Programmer
Я бы разрешил латинские и русские буквы (если сайт включает русскоязычную аудиторию, конечно), пробел, дефис и подчеркивание, а также цифры и спецсимволы. Минимальная длина - 3-4 символа, максимальная длина - на ваше усмотрение (12-16 символов или даже больше).

Логин регистронезависимый (то есть star guardian и Star Guardian - одинаковый логин). Также сделал бы список запрещенных логинов, таких как root, admin, moderator, support, helpdesk и т.п., которые можно использовать для социальной инженерии, чтобы представиться кем-либо из администрации сайта.
Ответ написан
Комментировать
maaGames
@maaGames
Погроммирую программы
Лучше разрешить любые печатные символы. Единственное, что лучше запретить пробелы в начале и в конце логина. То же касается и пароля.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
$regex_name4 = '/^[a-zA-Z0-9-_]{3,20}$/';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
03 мая 2024, в 00:45
1000 руб./за проект
02 мая 2024, в 23:56
2000 руб./за проект
02 мая 2024, в 23:29
1500 руб./в час