Kontrola dostupnosti přihlašovacího jména
Nyní má naše registrace jeden problém - nový uživatel našeho webu se může zaregistrovat pod již existujícím přihlašovacím jménem, což je samozřejmě nepřijatelné.
Pro vyřešení problému je nutné před požadavkem
na přidání nového uživatele do databáze
provest dotaz SELECT, který
zkontroluje, zda je požadované přihlašovací jméno volné nebo obsazené. Pokud
je volné - provedeme registraci, pokud je obsazené -
neregistrujeme a zobrazíme o tom zprávu.
Napišme tento kód:
<?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 {
// přihlašovací jméno je obsazené, vypíšeme o tom zprávu
}
}
?>
Upravte svůj kód tak, aby při pokusu o registraci proběhla kontrola obsazenosti přihlašovacího jména a, pokud je obsazené, zobrazte o tom zprávu a požádejte o zadání jiného přihlašovacího jména.