Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Как запретить регистрацию похожих никнеймов
Новая тема
Ответить
цитата
20/01/17 в 20:55
kbot
Предположим, на сайте есть пользователь с ником, например, "Ольга".
Как бы запретить регистрацию ников, которые выглядят так же или очень похоже, например, с русской "а" или "О", или с нулём вместо "О" и т.п.?
Нужна функция, которая сравнивает два ника и говорит, слишком ли они похожи, или нет.
цитата
20/01/17 в 21:41
dizziness
замутить ИИ который будет решать,
слишком
похожи ники или нет
p.s.
==================================
пардон, подкрепил знания в доках
<?php
$var_1 = 'Ольга';
$var_2 = '0льга';
similar_text($var_1, $var_2, $percent);
echo $percent;
ну а дальше, задай процент, который устроит, и вперед.
p.p.s. ну пых, каждый день что-то новое
цитата
21/01/17 в 14:16
kbot
Наверное, нужно даже не столько знать, как сильно похожи две строки, сколько уметь приводить строку к некоему "стандартному" виду. Например, заменять отдельные символы по правилам типа:
'0' => 'O',
'1' => 'l',
'А' => 'A',# cyr->lat
'а' => 'a',# cyr->lat
...
В БД дополнительно записаны приведённые к стандартному виду имена аккаунтов. При реге нового в БД ищется совпадение приведённого к стандартному виду нового имени с уже существующими в БД. Если нашлось - нельзя регаться.
Собственно, нужна как можно более полная таблица похожих юникод-символов.
цитата
21/01/17 в 15:56
dizziness
цитата
22/01/17 в 22:49
IgorZ
Как вариант переводить в транслит и снова сравнивать с транслитом оригинала транслит(ввод)=транслит(оригинал): olga==olga = true, этот пример только с разными раскладками катит, где О русская меняется на O английскую.
Но можно функцию приведения к единому транслиту сделать для каждой раскладки и цифры учесть.
Есть еще поиски по фонетическому сравнению, туда не копал.
Новая тема
Ответить
Эта страница в полной версии