PHP - Kullanıcı giriş (log-in) sayfası hazırlanması
Hazırlanılan web sayfalarının sadece siteye üye olan kullanıcılar tarafından görüntülenmesi isteniliyorsa, siteye girişte kullanıcıların kullanıcı adları ve şifrelerinin kontrol edilmesi gerekmektedir. Kullanıcı adları (username) ve şifreleri (password)ni doğru bir biçimde girien kişilerin oturumları açılarak iştenilen sayfaları görmeleri sağlanmalıdır. Bu işlemler için hazırladığımız kullanıcı giriş sayfası aşağıda gösterilmiştir.
Örnekte kullanıcı adları ve şifrelerinin MySQL veritabanında saklandığı düşünülmüş ve ona göre veritabanından gerekli sorgulamalar yapılmıştır.
// #################################################
<?
session_start();
// *** MySQL veritabanı ile bağlantı kuruluyor. $dbh=mysql_connect ("localhost", "", "") or die ('Veritabanı ile bağlantı sağlanamıyor. Hata: ' . mysql_error());
mysql_select_db ("veritabanı_adı");
// *** Kullanıcılar formu doldurulmuşsa bu bölümde kontrol yapılmaktadır.
if ((!empty($_POST["username"])) && (!empty($_POST["password"])))
{
$MyKullanici=$_POST["username"];
$MySifre=$_POST["password"];
$sql="SELECT sifre FROM kullanıcılar WHERE username =' ".$MyKullanici." ' ";
$Mysonuc = mysql_query($sql);
if (mysql_num_rows($Mysonuc)) { // **Kullanıcı varsa
$Mysatir = mysql_fetch_row($Mysonuc);
if ($Mysatir[0] == $MySifre) { // ** şifre karşılaştırılması
$_SESSION["user"]=$MyKullanici; //** şifre doğru ise oturum açıldı.
header("Location: menu.php"); //** istenilen sayfaya yönlendirildi.
}
else { //** şifre hatalı girildi.
$msg= "Şifreyi hatalı girdiniz.";
}
}
else { //** Veri tabanından kullanıcı bulunamadı
$msg= "Kullanıcı kayıtlı değil.";
}
} ?>
<html>
<head>
<title>Kullanıcı Girişi</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
</head>
<body>
<p align="center">Kullanıcı Girişi</p>
<!-- ********* Kullanıcı ve şiifre giriş formu ************ --> <form method="post" action="login.php" >
<table align="center" border="1" bordercolor="#CCCCCC" style="border-collapse:collapse">
<tr><td>Kullanıcı Adı:</td><td><input type="text" name="username"></td></tr>
<tr><td>Şifre:</td><td><input type="password" name="password"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Giriş"></td></tr>
</table>
</form>
<p align="center"><font color="#FF0000"><?=$msg?></font></p>
</body>
</html>
// #################################################
// #################################################
Yukarıdaki örneği detaylı olarak inceleyelim.
Eğer kullanıcılarla ilgili oturumlar açılması gerekiyorsa mutlaka sayfanın en başında
session_start();
ifadesinin kullanılması gerekmektedir.
Oturum işlemlerini tanımlanmasından sonra kullanıcı adı ve şifrelerin tutulduğu veritabanı bağlantısı yapılmaktadır. Örnekte MySQL veri tabanı kullanılmış ve bağlantılar
"mysql_connect ()" ve "mysql_select_db ()"
fonksiyonları ile kurulmuştur. Bağlantılar sağlandıktan sonra en alt tarafta bulunan formdan gelen verilerin olup olmadığı kontrol edilmiş ve form doldurulmuşsa kullanıcı adı ve şifre
$MyKullanici=$_POST["username"] , $MySifre=$_POST["password"];
ifadeleri ile değişkenlere atanmıştır. Burada dikkat edilmesi gereken nokta kullanılan formun metodu POST olarak tanımlandığı için değişkenlerde $_POST[ ] ifadesi ile alınmış olmasıdır.
Bu bölümden sonra veritabanından sorgulamalar yapılmakta ve formu dolduran kullanıcının şifre bilgisi alınmaktadır ve yine forma girdiği şifre bilgisi ile karşılaştırılmaktadır. Eğer şifreyi doğru girmiş ise
$_SESSION["user"]=$MyKullanici; ifadesi ile user isimli bir oturu açılmış ve değeri kullanıcının ismi olmuştur.
Bir sonraki satırda bulunan
header("Location: menu.php");
komutu ile kullanıcı adı ve şifresini doğru giren kişi gösterilmek istenilen sayfaya yönlendirilmiştir. "Header()" fonksiyonu, kullanılırken dikkat edilecek olan husus ise bu fonksiyon ekrana herhangi bir ifade yazdırılmadan önce çağrılmalıdır.
Diğer satırlarda ise şifre veya kullanıcı adı yanlış girilmişse uyarı mesajları oluşturulmaktadır. $msg değişkeni sayfanın en altında yazdırılmaktadır.
PHP kodlarından sonra ise html bölümü bulunmaktadır. Kullanıcı sayfaya ilk giriş yaptığında ekranda buradaki formu görmektedir. Form doldurulduktan sonra değerler login.php sayfasına aktarılmaktadır.
Yukarıdaki kodları kopyaladıktan sonra kendi veritabanınıza göre ayarlamaları yaptıktan sonra login.php olarak kayıt edip, çalıştırabilirsiniz.
|