Ну, ребята, я здесь, потому что я хочу сделать что-то продвинутое на своем сайте, и я не знаю, как это сделать и, если возможно, сделать это.
Это вот так:
Кто-то зарегистрируется на моем сайте и будет иметь функцию, чтобы проверить, заблокировано ли это имя или нет в «array ()», но некоторые специальные символы можно добавить к вашему имени, например «.», «-» … И если я регистрируюсь как это имя «ADM», моя проверка не работает.
Ребята, вы можете помочь мне с этим?
Моя функция:
final static function isBlockedName($name) {
$blockedNames = array ('mod', 'adm', 'staff');
foreach($blockedNames as $list) {
if(strtolower($name) == strtolower($list)) {
self::AddBan('user','157788000',self::getUserID($name),'Nome Impróprio','3');
session_destroy();
header('Location: /');
exit;
}
}
foreach($blockedNames as $two) {
if(strpos(strtolower($name), strtolower($two)) !== false) {
self::AddBan('user','157788000',self::getUserID($name),'Nome Impróprio','3');
session_destroy();
header('Location: /');
exit;
}
}
return false;
}
Извините за мой плохой английский 🙁
Ты можешь использовать str_replace
удалить эти специальные символы из имени в сравнении. + Изменить
if(strtolower($name) == strtolower($list)) {
в
if(strtolower(str_replace(array('.', '-'), '', $name)) == strtolower($list)) {
Альтернативный способ заключается в использовании in_array
вместо foreach
цикл:
if(in_array(str_replace(array('.', '-'), '', $name), $blockedNames)) {
// do something
}
Других решений пока нет …