Basit bir download sayıcı uygulaması hazırlarken ihtiyacım oldu. Herhangi bir veritabanı kullanmadan sayfalarınıza kolayca adapte edebilirsiniz. Bu uygulama ile dilerseniz sitenizin bazı sayfalarına sadece şifreyi bilen kullanıcıların erişmesini sağlayabilir veya uygulamayı özel verilerinizi içeren sayfaların güvenliğini sağlamak için kullanabilirsiniz. Session mantığının bir güzel tarafı da üzerinde çalışılan pencere kapatıldıktan sonra tutulan tüm verilerin otomatik olarak silinmesi.
Tek bir sayfayı şifrelemek için:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php session_start(); $sifre = "123"; // şifreyi tanımlıyoruz // çıkış işlemi if($_GET['op'] == "logout") { $_SESSION['logged'] = "0"; echo "Çıkış yapıldı"; } // şifre kontrol if($_GET['op'] == "login") { if($_POST['sifre'] != "$sifre") { echo "Hatalı bir şifre girdiniz!"; } else { $_SESSION['logged'] = "1"; // giriş başarılı olursa listelenecek sayfa içeriği echo 'Giriş yapıldı [ <a href="?op=logout">çıkış</a> ] <br><br><i>Sayfa içeriği burada</i>'; } } // giriş formu if ($_SESSION['logged'] != "1") { echo '<form action="?op=login" method="POST"> <input type="password" name="sifre"> <input type="submit" value="Giriş"> </form>'; } ?> |
Eğer birden fazla sayfa için session aracılığıyla şifreli erişim uygulamak isterseniz önce config.php gibi bir dosya oluşturup içerisine şifre bilgisini ekleyin
config.php içeriği:
1 2 3 | <?php $sifre = "123"; ?> |
Ardından bir login.php dosyası oluşturup, içine yukarıda verilen kodları aşağıdaki şekilde değiştirip ekleyin
login.php içeriği:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php session_start(); include('config.php'); if($_GET['op'] == "logout") { $_SESSION['logged'] = "0"; echo "Çıkış yapıldı"; } if($_GET['op'] == "login") { if($_POST['sifre'] != "$sifre") { echo "Hatalı bir şifre girdiniz!"; } else { $_SESSION['logged'] = "1"; // giriş başarılı ise yönlendirilecek sayfa header('location:index.php'); } } if ($_SESSION['logged'] != "1") { echo '<form action="?op=login" method="POST"> <input type="password" name="sifre"> <input type="submit" value="Giriş"> </form>'; } ?> |
Şifre doğru girilirse index.php isimli sayfaya yönlendirileceksiniz. Buna göre index.php ve diğer şifreli erişim gerektiren dosyaların tepesine oturum kontrolü yapan aşağıdaki kodları yerleştirin:
1 2 3 4 5 6 | session_start(); header("Cache-control:private"); if($_SESSION['logged'] != "1") { header("location:login.php"); die(); } |
Bu kodlar, şifre ile erişim gerektiren sayfalara www.site.com/sayfa.php şeklinde ulaşılmak istendiğinde giriş yapılmamış ise sayfayı login.php dosyasına yönlendirecektir.
Son olarak sayfalarınızdan bir çıkış linki vermek isterseniz link yapısı şu şekilde olmalı: login.php?op=logout
9 yorum
faydalı bilgilerin için teşekkürler :D
İşin görüldüyse ne mutlu zekai :)
yok işimi görmedi :D bana daha komplike scriptler lazım :D
Deme ya, ee ne gibi şeyler lazım söyle de aklımızda bulunsun o vakit :)
bana bişi lazım değilde bu aralar olursa sölerim :D
ama bi basit alışveriş sepeti uygulaması yapsan açıklamalı felan baya getirisi olur sana.. benden sölemesi ;)
bak aklıma geldi şimdi :D mesala özgedikotomotivin sitesine bakarken aklıma geldi :D
şimdi bu genel özellikler kısmı var ya. biz bu özellikler için bi tablo yapıyoruz. ama sonra bunları nasıl tek bi hücerede göstericez? sql kısmı nasıl olcak onu bi açıklarsan merakımı gidermiş olursun :D bide bu etiket(tag) olayı var :D yine bunları tek bi hücreye giriyoruz ama nasıl bunları tek tek ayırıp hepsine ayrı link veriyoz :D bu ikisi bayadır aklıma takılıyo da :D
diyelim ben bunu üyelik scriptine dönüştürdüm. ve anasayfamda online üyelerin nicklerini göstermek istiyorum. nasıl yapabilirim bunu Caner?
Bunu session ile yapamazsın ama Zekai, öyle bir şey için her online olan vatandaşı ya veritabanına ya da bir txt dosyasına yazdırman sonra çekmen lazım.
bi kişi sisteme girince txt ye veya veritabanına yazdırmak kolayda, çıktığında nasıl yazdığımızı silebiliriz? logout yapsa tamam da pencereyi kapatıp gidenler için nasıl bir yöntem izlemeliyiz onu bilmiyorum