Preverjanje zasedenosti uporabniškega imena
Trenutno ima naša registracija eno težavo - nov uporabnik naše spletne strani se lahko registrira pod že obstoječim uporabniškim imenom, kar je seveda nesprejemljivo.
Za rešitev težave je potrebno pred zahtevkom
za dodajanje novega uporabnika v bazo
podatkov, izvesti SELECT poizvedbo, ki
preveri, ali je želeno uporabniško ime zasedeno ali ne. Če
ni zasedeno - registriramo, če je zasedeno - ne
registriramo, temveč prikažemo sporočilo o tem.
Napišimo to kodo:
<?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 {
// uporabniško ime je zasedeno, prikažemo sporočilo o tem
}
}
?>
Spremenite svojo kodo tako, da bo ob poskusu registracije izvedena preverba zasedenosti uporabniškega imena in, če je zasedeno, - prikažite sporočilo o tem in prosite za vnos drugega uporabniškega imena.