Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017
Откуда: Германия, Бавария
Помог: 37 раз(а)
|
tonyresh пишет:Приветствую!
Хотим сделать возможность регистрации (либо последующей смены), юзеров с никами на латинице и кириллице.
Вопрос: как не допустить ников вида: МАМА(рус.) - MAMA(eng.)
Добрый день!
Видимо, вопрос возник в связи с валидацией формуляра регистрации.
На первом шаге, обычно, рег. выражением проверятся, правило - ник м.б. на латинице и кириллице.
Согласно, этого правила оба ника МАМА(рус.) - MAMA(eng.) введены корректно.
На следующем шаге, перед сохранением в базе данных, необходимо проверить зарегистрирован
ли уже другой пользователем с таким же ником.
И тут возникает, проблема. Если уже была сохранена запись с ником МАМА(рус.)
появится новая с ником MAMA(eng.)
Вы можете попробовать перед сохранением ника в БД, заменить все символы на кириллице
имеющие одинаковое начертание с символами на латинице. Например, cyrillic "M" на lat. "M".
Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
<? echo "<pre>"; $test="МАМА"; //cyrillic var_dump(ReplCyrToLat ($test)); //$test lat $test="MAMA"; //lat var_dump(ReplCyrToLat ($test)); //$test lat $test="МAМA"; //M cyrillic A-lat var_dump(ReplCyrToLat ($test)); //$test lat function ReplCyrToLat($str){ $cyr=["а", "е", "о", "р", "с", "у" , "х" , "А", "В", "Е", "К", "М", "Н", "О", "Р", "С", "Т" , "Х"]; //cyrillic $lat=["a", "e", "o", "p", "c", "y" , "x", "A", "B", "E", "K", "M", "H", "O", "P", "C", "T" , "X"]; //lat } /* //"МАМА" cyrillic string(8) "МАМА" string(4) "MAMA" --------------------------- //"МАМА" lat string(4) "MAMA" string(4) "MAMA" --------------------------- //"МАМА" M cyrillic A-lat string(6) "МAМA" string(4) "MAMA" */ ?>
Удачи!(Отредактировано автором: 08 Января, 2021 - 13:31:09)
|