PHP ile Veritabanı Üzerinden Basit Yetkilendirme
Veritabanı tabanlı en basit yetkilendirmeyi uygulayalım, şimdilik kayıt olmadan. Kullanıcı kaydı yerine, onların kullanıcı adlarını ve şifrelerini doğrudan veritabanındaki bir tabloya gireceğiz:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Şimdi, kullanıcı adı ve şifrenin girileceği bir form yapalım:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Şimdi, formun gönderilip gönderilmediğini kontrol eden, eğer gönderildiyse, veritabanında bu kullanıcı adı ve şifreye sahip bir kullanıcı olup olmadığını kontrol eden kodu yazalım:
<?php
if (!empty($_POST['password']) and !empty($_POST['login'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
if (!empty($user)) {
// kullanıcı yetkilendirildi
} else {
// yanlış kullanıcı adı veya şifre
}
}
?>
Yukarıda açıklanan yetkilendirmeyi uygulayın. Eğer kullanıcı yetkilendirmeyi geçerse - bununla ilgili bir mesaj gösterilsin, eğer geçemezse - girilen kullanıcı adı veya şifrenin yanlış olduğuna dair bir mesaj gösterilsin.
Kodu, başarılı yetkilendirme durumunda şifre ve kullanıcı adı giriş formunun ekranda gösterilmemesi için değiştirin.
Kodu, başarılı yetkilendirme durumunda
index.php sayfasına yönlendirme
(redirect) yapılacak şekilde değiştirin.
Kodu, index.php sayfasında başarılı
yetkilendirme mesajının gösterilmesi için
değiştirin. Sorunu oturumlarda (session) flash
mesajlar kullanarak çözün.