Я могу запретить нескольким пользователям регистрироваться с одинаковым именем пользователя с помощью кода ниже:
$sqlusercheck = "SELECT (SELECT COUNT(row_username) FROM table_users WHERE row_username = :username LIMIT 1) as checkusername";
$stmt = $database->prepare($sqlusercheck);
$stmt->bindValue(':username', $username);
$stmt->execute();
$row = $stmt->fetch();
if ($row->checkusername > 0) {
$this->error[] = "This username is already taken.";
$success = false;
}
Итак, если в базе данных есть Abc
, пользователь не может взять имя пользователя Abc
, но он все равно может зарегистрироваться с помощью Abc
, Abc
, Abc
и т.д., что я хотите предотвратить.
В качестве возможного решения я не хочу использовать strtolower()
имя пользователя. Вместо этого я хочу, чтобы пользователь Abc
заходил в систему с его паролем независимо от того, написал ли он вход для входа Abc
, Abc
, Abc
и т.д.
Зачем мне это нужно?
Я заметил, что пользователь может зарегистрироваться с именем пользователя Abc
на своем компьютере. Но когда он хочет войти в систему на своем мобильном устройстве, устройство автоматически запустит первую букву, а пользователь не сможет войти в систему. Или наоборот.
Итак, почему я не хочу strtolower()?
Потому что пользователи также хотят, чтобы они показывались как Abc
, и так специально зарегистрировались. Таким образом, их имена пользователей будут показаны по мере их регистрации.