ログイン名の使用状況確認
現在、私たちの登録機能には一つの問題があります - 私たちのサイトの新規ユーザーは、既に存在するログイン名で登録できてしまうのです。 これはもちろん、許容できません。
この問題を解決するには、新しいユーザーをデータベースに追加するリクエストの前に、
SELECT クエリを実行し、希望するログイン名が使用されているかどうかを
確認する必要があります。使用されていなければ登録を進め、使用されていれば登録せずに
その旨のメッセージを表示します。
では、このコードを書いてみましょう:
<?php
if (!empty($_POST['login']) and !empty($_POST['password'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE login='$login'";
$user = mysqli_fetch_assoc(mysqli_query($link, $query));
if (empty($user)) {
$query = "INSERT INTO users SET login='$login', password='$password'";
mysqli_query($link, $query);
$_SESSION['auth'] = true;
} else {
// ログイン名は使用されています。その旨のメッセージを表示します
}
}
?>
登録試行時にログイン名の使用状況確認が実行され、 もし使用されていた場合はその旨のメッセージを表示し、 別のログイン名の入力を促すように、あなたのコードを修正してください。