Войдите с именем пользователя, но войдите с именем пользователя в нижнем регистре - PullRequest
1 голос
/ 30 декабря 2011

Недавно у меня было много предложений на моем веб-сайте, и одно из них состояло в том, чтобы разрешить им входить в систему со своим именем пользователя в нижнем регистре.

Если бы у JoHNdoE было такое же имя пользователя в базе данных, я уверен, что было бы весьма раздражающим, если бы они попытались войти в систему и должны были вспомнить, куда они поместили эти столицы.

Так что я хотел сделать так, чтобы Джон Доу мог войти под этим именем пользователя johndoe. Гораздо проще запомнить.

мой запрос в настоящее время

$get_user_info = mysql_query("SELECT * FROM users WHERE username = '$entered_username' AND md5_username = '$md5_entered_username' AND password = '$entered_password' LIMIT 1");

И тогда это продолжится с

if (mysql_num_rows($get_user_info)==1) {
//then log them in
} else {
//kick 'em out!
}

Как бы я поступил об этом?

Ответы [ 2 ]

4 голосов
/ 30 декабря 2011
  1. Убедитесь, что вы отформатировали имя пользователя, чтобы исключить атаки с использованием SQL-инъекций

  2. Хэш Md5 для имени пользователя будет бессмысленным, так как прописные и строчные буквы имеют значение.Вместо этого вы должны хешировать пароль и не хранить его в виде простого текста

  3. Но, основываясь на вашей текущей модели БД

    $get_user_info = mysql_query(
        "SELECT * FROM users WHERE username = '$entered_username'  LIMIT 1")
    

    , сравните пароль.Вы не можете использовать имя пользователя Md5

2 голосов
/ 30 декабря 2011

Помимо всех комментариев, с которыми я согласен относительно безопасности (особенно хеширования пароля ...), чтобы сделать имя пользователя нечувствительным к регистру:

$entered_username = strtolower($entered_username);
$get_user_info = mysql_query("SELECT * FROM `users` WHERE LOWER(`username`) = '$entered_username' AND `password` = '$entered_password' LIMIT 1");

Если ваши имена пользователей уникальны (я предполагаю, что они ...), вы можете удалить предложение LIMIT, а также удалить проверку пароля и сделать это в php, чтобы лучше обрабатывать ошибки входа в систему ( отделить несуществующее имя пользователя от неверного пароля).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...