PHP Login Kontrolü

01 Ekim 2009 tarihinde Ali TOPALOĞLU tarafından yazılmış.



kilitMerhaba, php dili ile web programlamada biz geliştiricilerin çoğu zaman gereksinim duyduğu bileşenlerin başında gelir kullanıcı giriş kontrolü. Ben de şu sıralar kullandığım basit ama bir o kadar da kullanışlı yöntemi sizlerle paylaşmak istedim.

Yapmamız gereken ilk iş kullanıcı bilgilerini içeren veritabanı tablolarını oluşturmak. Bu örnekte her kayıt sadece 3 alan içerecek:

Tablo: kullanicilar

Alan Adı Tipi Null Primary Key Extra
kullanici_no int(8) No PK AUTO
kullanici_adi varchar(11) No
parola varchar(32) No

Tabloyu oluşturduktan sonra şimdi içine biraz veri doldurmamız gerekiyor.

INSERT INTO kullanicilar (kullanici_adi, parola) VALUES (‘Ahmet Çakar’, md5(‘şifre123’));

Kullanıcı adı ve parola istediÄŸiniz herhangi birÅŸey olabilir. MD5 girdiÄŸiniz ÅŸifreyi otomatik olarak 32 bit string’e dönüştüren bir fonksiyondur. Åžifre bilgisini kodlayarak göndermek için iyi bir yöntem. Bu yöntemi kullanacaksanız dikkat edin, kodlama tek yönlü oluyor. Yani kodlanmış ÅŸifreyi eski haline dönüştüremezsiniz.

E o zaman kullanıcının doğru parolayı girdiğinden nasıl emin olacağım derseniz, gelin devam edelim.

Login formunu oluÅŸturuyoruz.

<html>
<head>
<title>Kullanıcı Giriş Paneli</title>
</head>
<body>
<form method=”POST” action=”login.php”>
Kullanıcı Adı: <input type=”text” name=”username” size=”20″>
Parola: <input type=”password” name=”password” size=”20″>
<input type=”submit” value=”GiriÅŸ” name=”login>
</form>
</body>
</html>

login.php dosyasının kodlarına bakalım:

<?PHP
//kullanıcının dosyaya direk olarak erişmeyip login formundan gelmesi gerektiğini kontrol ediyor ve
//gerekirse login formuna geri gönderiyoruz
if (!isset($username) || !isset($password)) {
header( “Location: http://www.siteadi.com/login.htm” );
}
//kullanıcı adı ve parola boş bırakılmış mı diye kontrol ediyoruz
elseif (empty($username) || empty($password)) {
header( “Location: http://www.siteadi.com/login.htm” );
}
else{

//field verilerini değişkenlere dönüştürüyoruz

$user = addslashes($_POST['username']);
$pass = md5($_POST['password']);

//veritabanı bağlantı bilgilerini düzenliyoruz

$dbHost = “localhost”;
$dbUser = “kullanıcıadı”;
$dbPass = “ÅŸifre”;
$dbDatabase = “veritabanıadı”;

//veritabanına bağlanıyoruz

$db = mysql_connect(“$dbHost”, “$dbUser”, “$dbPass”) or die (“BaÄŸlanırken hata oluÅŸtu.”);

mysql_select_db(“$dbDatabase”, $db) or die (“Veritabanı seçilemedi.”);

$result=mysql_query(“select * from kullanicilar where kullanici_adi=’$user’ AND parola=’$pass’”, $db);

//en az bir tane sonuç dönüp dönmediğini kontrol ediyoruz

$rowCheck = mysql_num_rows($result);
if($rowCheck > 0){
while($row = mysql_fetch_array($result)){

//oturumu açıyoruz

session_start();
session_register(‘kullanici_adi’);
//giriÅŸten sonraki istenilen kodlar buraya gelmeli…
echo “BaÅŸarıyla giriÅŸ yapıldı.”;
//kullanıcıyı giriş yaptıklarından emin olabileceğimiz başka bir sayfaya yönlendriyoruz
header( “Location:loginkontrol.php” );

}

}
else {

//EÄŸer hiç sonuç dönmemiÅŸse hata kodları buraya yazılmalı…

echo ‘Kullanıcı adı veya ÅŸifre hatalı.’;
}
}
?>

Olay bu. Sanıldığı kadar da zor değilmiş değil mi :)



   Bu yazı Ali TOPALOÄžLU tarafından PHP, Programlama kategorisine eklenmiÅŸtir.
  etiket , , , , olarak etiketlenmiÅŸtir.
  rss Bu yazı toplam  1.391 defa okunmuÅŸ.
  yazdir Buraya tıklayarak sayfayı yazıcıdan çıkartabilirsiniz.
  Yorum yapcam Yazıya yorum yapabilir, yapılan yorumları RSS 2.0 ile takip edebilirsiniz.
EkleBunu Sosyal Paylaþým Butonu


Bu yazıya 1 tane yorum yapılmış

  1. osman

    çok fazla imla hatası var


Mesaj Yaz