Php ve Mysql kullanarak üyelik girişi yapmayı ve bazı üye gruplarına sayfaları gizlemeyi anlatmak istedim.Umarım yararlı bir ders olur.
baglan.php sayfası için kodluyoruz;
$connection_codemania = @mysql_select_db("ws_rehber",@mysql_connect("localhost","root","")) or die (mysql_error()); mysql_unbuffered_query('SET NAMES utf8'); // bağlantıyı yapıyoruz.yapılamazsa hatayı yazdırıyoruz yapılırsa ut8 charsetiyle verileri çekiyoruz.
define ("alan1","kullaniciadi");
define ("alan2","sifre");
define ("tablo","uyeler");index.php sayfası için kodluyoruz;<?php
session_start();
ob_start();
include("baglan.php"); // veritabanına bağlanmak için bilgilerin yer aldığı dosyayı çekiyoruz.
if($_POST['submit']){ // submit değerinde bir input post edildiyse.
$akul = $_POST['user'];
$pass = $_POST['passcode']; // posttaki user ve passcode adlı verileri çek.User değerini akul değişkenine passcode değerini pass değişkenine ata.
if(empty($akul) || empty($pass)){ //değerleri kontrol et eğer boşssa
echo "Lütfen boş giriş yapmayınız,tüm alanları doldurunuz."; //uyarı yazdırıyoruz.
header("location:index.php"); // index.php sayfasına yeniden gönder
}else{ // boş değilse bir değer varsa.
$log = mysql_query("select * from ".tablo." where ".alan1."='$akul' and ".alan2."='$pass'"); // uyeler tablosundan kullanici adi gelen değere eşit olanı ve şifresi gelen değere eşit olan veriyi çek.
$query = mysql_num_rows($log); // sonucu saydır.
if($query > 0){ // değer 0 dan büyükse yani 1 se true ise veritabanında posttan gelen bilgiler gönderildiğinde bir veri varsa döngü 1 dönmüşse;
$_SESSION['logistera'] = true; //logister'a diye bir session oluştur ve true değerini ata.
$_SESSION['kullanicia'] = $akul; //kullanicia diye bir session oluştur ve $akul değişkenindeki veriyi ata.
$_SESSION['pripasa'] = $pass; //pripasa diye bir session oluştur ve $pass değişkenini ata.
header("Location:index.php?git=girisyapildi"); // index.php sayfasına yeniden gönder.
}else{
echo 'kullanıcı adı yada şifre hatalı';
}
}
}else{ // eğer hiçbirşey post edilmemişse üye giriş formunu göster.
echo '<form name="uyegiris" action="" method="post">
<center>
<table width="200" border="0" cellpadding="2" cellspacing="4" >
<tr>
<td>Kullanıcı Adı</td>
<td>:</td>
<td><input type="text" name="user"/></td>
</tr>
<tr>
<td>Şifre</td>
<td>:</td>
<td><input type="password" name="passcode"/></td>
</tr>
<tr>
<td colspan="2"> </td>
<td><input type="submit" name="giris" value="Giriş Yap"/></td>
</tr>
</table>
<center>';
}
ob_end_flush();
$uyari = $_GET['git'];
switch($uyari){
case girisyapildi:
echo "Giriş yapıldı.";
break;
}
?>Evet şimdi giriş sayfamızı oluşturduk,peki biz bir sayfaya giriş yapılmadan ulaşılmamasını giriş yapılmadan girilmeye çalışınırsa bu sayfaya yollanmasını istiyoruz bunu nasıl yapacağız ?Örnek olarak admin.php oluşturuyoruz;
Sayfanın başına ;
<?php
session_start();
if(isset($_SESSION['logistera'])){ //eğer logister sessionunda değer varsa doluysa sayfayı göster.
}else{ // eğer veri yoksa logister boşssa veya yoksa ve bu sayfaya giriş yapılmaya çalışılmışsa
$saat = date("g.s.i"); // izinsiz giriş yapılmaya çalışılan saati al
$tarih = date("m.d.y"); // izinsiz giriş yapılmaya çalışılan tarihi al.
$tarih_saat = "$tarih,$saat"; // tarih ve saati birleştir.
$ip = $_SERVER["REMOTE_ADDR"]; // giriş yapmaya çalışanın ipsini al
$tarayici = $_SERVER["HTTP_USER_AGENT"]; // kullanıcı arayüz bilgilerini al
$sql = "INSERT INTO admin_security (`tarih_saat`,`ip`, `tarayici`) VALUES ('$tarih_saat', '$ip', '$tarayici')"; // admin_security tablosuna verileri kaydedecek bir sql oluştur.
mysql_query($sql); // bu sqlu çalıştır
header("Refresh: 5; url=index.php"); //yönlendir index.php'ye
} // şeklinde bir güvenlik önlemi alınacağı gibi sadece yönlendirebilirsiniz yada echoyla bu sayfayı görebilmek için giriş yapmanız gerekir yazdırabilirsiniz.
?>Ders bazı güvenlik önlemleri atlanarak hazırlanmıştır bunun sebebi; olabildiğince güzel ve kolay bir sistem yaratmak ve yeni öğrenmeye başlayanların kafasını karıştırmamak,sadece olaya kitlenmek genel amaç olduğundan dolayıdır.