Оптимальная реализации проверки уникальности ника на PHP при использовании рус/eng букв ?

интернет программирование php алгоритмы

Какой по вашему оптимальный алгоритм защиты уникальности ников от троллинга ?
Если в никах используются и русские и английские буквы


Лично я думаю о таком алгоритме
сначала проверяю есть ли в нике русские буквы и цифры - если нет сравниваю с существующими в базе если не совпадает разрешаю

Если есть в нике русские буквы и цыфры то все похожие по начертанию меняю на английские
$a=str_replace("В", "B", $a);
потм получив ник в котором все буквы по начертанию похожи на английские
но непохожие еще русские - меняю все буквы русские на английские созвучные ( в принципе созвучные или нет по барабану 8))
и сравниваю с имеющимся в базе ником - если уникален пускаю нормальный вид ника с русскими буквами и в базе храню этот ник коряво англицкий 8)

я что то намудрил или упустил ?
Ниразу еще не делал ники с русскими буквами
Ответы:
Всё верно.
Вот готовая функция [1] там же есть обсуждение этого процесса...
Простое решение — допускать в нике символы только из одного набора, т.е. ты чтобы пользователи могли создать и английские ники и русские, но не смешивая алфавиты в одном нике.
Угу. Могу добавить что если база хранит записи в юникоде, такая проверка поможет только отчасти.
Проверять регулярным выражением на предмет наличия в нике букв только одного алфавита:
[А-Яа-я]{3,}|[A-Za-z]{3,}
+ Если есть желание - можно разрешить цифры и прочие крокозябли.
дык, в функции что выше я давал есть список пар визуально похожих букв английских и русских
'eyuopaghklxcbnm03','еуиораднк1хсвпмоз'
перевести имя в один формат и по нему сравнивать...
А показывать естественно, то что человек реально ввёл.
То есть хранить два поля: 1 реальное имя, 2 хеш имени для сравнения. и не допускать регистрацию с таким же хешем.
Ок, какую проблему требуется решить? Проблему путаницы ников, когда они похожи по написанию. Так?
Предположим твой алгоритм будет 100% определять похож ли создаваемый ник на уже существующий и что тогда? Ты не разрешишь его создавать только по этой причине? Представляю глаза юреза, когда ты ему об этом сообщишь.
А если не запретишь смешивание наборов, то вариантов может быть очень много (например ник "хромосом" — шесть взаимозаменяемых символов плюс комбинации).
Про юникод - это я к тому, что кроме русского существуют и другие языки и кодировки. И там тоже полно символов, совпадающих с английскими или русскими. И если база юникодовая, то эти символы будут без проблем сохраняться, обходя проверку, заточеную на русские символы.
ну ведь куча еще charset-ов существует, они выглядят так же как латинские или русские, а код другой!!!
я считаю, надо завести индивидуализацию ников и все...
это не так трудно, но стоит приличного проекта
Лично я бы не заморачивался этой проблемой.
пусть пишут что угодно и как угодно :)
канадос, кто первый застолбил "хромосом" тот и пользуется. глаза остальных никого не волнуют!
Просто писать ник занят! не объясняя внутреннюю логику приложения. Пусть развивают фантазию.
wizard, в таком случае я не понял в чём заключается проблема.
Возможно нужно описать её подробнее...


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.