Cookie ile Üyelik Girişi

 bcakir
 23 Ocak 2012
 Php

Merhaba arkadaşlar, daha önceki yazımda session ile üyelik girişi örneği yapmıştım. Bu yazımda ise, cookie ile üyelik girişi yapmayı anlatacağım. Daha önce session ve cookie arasındaki farklardan bahsetmiştim. Eğer bu konuda bilgi edinmek istiyorsanız, o makaleyi okumanızda büyük fayda var. Aralarında temel iki farkı öğrendikten sonra bu uygulamayı daha iyi kavrayabilirsiniz. Bu uygulama için veritabanı kullanmayacağım ama siz bu yazıdan faydalanarak veritabanına bağlama işlemini kolayca yapabilirsiniz. Yazıma geçmeden önce, önemli bir konuyu size hatırlatmak istiyorum; cookie kullanıcının erişebileceği bir dosya olduğu için içerisinde çok önemli bilgi saklamayın. Bu önemli noktayı da söylediğime göre, şimdi index.php sayfamızı yapmaya başlayalım.

<?php
//index.php olarak kaydedin
//kullanıcı adı ve parola girin
$kullanici = "bcakir";
$sifre = sha1(md5("bcakir"));

//fonksiyonları içeri aktarma
include "fonksiyonlar.php";

//sayfa parametresini alma
if (isset($_GET['sayfa'])){
    if (($_POST) && ($_GET['sayfa'] == 'giris')){
        //üye olup olmaddığı kontrolü
        kontrol($kullanici, $sifre);
    }elseif ($_GET['sayfa'] == 'cikis'){
        //çıkış yapma
        cikis();
    }
}

//form elemanlarını cookie oluşturulmamışsa göster
if(!isset($_COOKIE['username'])){
?>

<!DOCTYPE html>
<html>
<head>
<title>Cookie ile Üye Girişi</title>
</head>
<body>
<form action="index.php?sayfa=giris" method="Post">
Kullanıcı: <input type="text" name="user" value="" />
Şifre: <input type="password" name="pass" value="" />
<input type="submit" name="gonder" value="Gönder" />
</form>

<?php
}else{
    //eğer cookie silinmemişse, direk giriş sayfasına yönlendir
    include "giris.php";
}
?>
</body>
</html>

Yukarıda kullanıcıdan adını ve şifresini alacağımız form elemanlarını ve fonksiyonlar.php sayfasında uygun fonksiyona yönlendirme işlemini yaptık. Şimdi fonksiyolar.php betiğimizi yapalım.

<?php
//fonksiyonlar.php olarak kaydedin
ob_start();

// Giriş Kontrol
function kontrol($kullanici, $sifre){
    //güvenlik için cookie iptali
    setcookie('username','',time()-1);
    //formdan alınan verilerin temizlenmesi
    $user = addslashes(strip_tags(trim($_POST['user'])));
    $pass = addslashes(strip_tags(trim($_POST['pass'])));
    $pass = sha1(md5($pass));

    //girilen bilgilerin kontrol edilme işlemi
    if(empty($user) && empty($pass)){
        echo 'Tüm alanları doldurun.';
    }elseif($kullanici == $user && $sifre == $pass){
        //giriş için cookie oluşturma
        //ben 1 günlük süre için açtım, siz değiştirebilirsiniz
        setcookie('username',$user,time()+60*60*24);
        //giris.php sayfasına yönlendirme
        echo "Sitemize giriş yaptınız, yönlendiriliyorsunuz.";
        header("Refresh: 2; url=giris.php");
    }else{
        echo "Kullanıcı adı ile şifre eşleşmedi.";
        header("Refresh: 2; url=index.php");
    }
}

// Çıkış
function cikis(){
    //cookie iptal etme
    setcookie('username','',time()-1);
    echo "Sitemizden çıkış yaptınız, yönlendiriliyorsunuz.";
    header("Refresh: 2; url=index.php");
}

ob_end_flush();
?>

Yukarıda ise giriş ve çıkış fonksiyonlarımızı yani cookie oluşturma ve silme işlemlerini yaptık. Şunu belirtmeden geçmeyim; ob_start(); fonksiyonunu kullanmazsanız cookie oluşturamazsınız ve hata mesajı alırsınız. Şimdi uygulamamızın son sayfası olan giriş.php ile uygulamamızı bitirelim.

<?php
//giris.php olarak kaydedin
if(isset($_COOKIE['username'])){
    echo "Sitemize giriş yaptın. Hoşgeldin, ".$_COOKIE['username'];
    echo " <a href='index.php?sayfa=cikis'>Çıkış Yap</a>";
    //sayfa ile ilgili bütün kodlar burada olmalı

}else{
    //sayfaya giriş yapmadan girilmesini engellemek için
    echo "İlk önce sitemize giriş yapmalısınız.";
    header("Refresh: 2; url=index.php");
}
?>

Son olarak giriş sayfamızı da yaptık. Burada, kullanıcıların uyanık davranıp giriş yapmama ihtimaline karşı önlem almayı da unutmadık. Böylece bir uygulamamızın daha sonuna geldik. Yararlı olmadı dileğiyle.

 2.465 Okunma

Bu yazıya 3 yorum yapılmış.

  1. elinize sağlık çok güzel çalışmalar yapıyorsunuz. başarılarınızın devamını dilerim.

  2. Merhaba dostum. Öncelikle anlatımın için çok tşkler. Benim bir sorunum var ve bunu internette örnekleri/çözümleri olmasına rağmen aşamadım. Sorunum şu;
    Benim bir chechkbox listem var sitemde. Buradaki checkboxlara tıklandığında yazı içerisindeki bazı tr/div leri gizliyorum. Tabi bir de sayfa yüklenirken checkbox ın durumunu kontrol ettiriyorum ve ona göre divleri gizliyor açıyorum. İşte buraya kadar sorunsuz çalıştırdım, yazdım. Fakat kod bilgim kısıtlı olduğu için bu aşamada takıldım. Bir sonraki adımım chookie i kullanarak checkboxların kullanıcının seçimini hatırlaması ve ona göre sayfa yuklendiğinde divlerin gizlenmesi/gosterilmesi + checkboxların seçili olması / olmaması. Ayrıca bir de tıkladığımızda gizleme olayı vardı. Bununda hali hazırda çalışıyor kalması lazım. Yada checkboxlardan tıklananları toggle yapıp gizleyim bir cookie silici tuş koyup istenildiği taktirde geri gösterilmesini sağlamak. Derdim karışık zaten umarım ben anlatabilmişimdir.
    Ayrıca aradığım şeyi tam anlamı ile şu adreste adamlar yapmış ama ben bir türlü nedense entegre edemedim. Sayfa bu: http://www.the-art-of-web.com/javascript/setcookie/
    İncelersen sevinirim. İyi çalışmalar

  3. Merhaba bir problemim var benim her yönü ile program yazım işlemi çok harika bir durum fakat araştırıp ta bulamadığım bir konu var bana bu konuda yardımcı olursanız sevinirim.
    Pazarlama sektöründe network marketing sistem oluşmaktadır. Ben de bu pazarlama sektöründe satış ağı oluşturmak için kendi sistemime böyle üyemin alt üyesi şeklinde bir yapı oluşturmak istiyorum bu üyelik sisteminin alt üyelik sistemi nasıl yapılmaktadır.
    Bilgi verilirse çok memnun kalırım, teşekkür ederim.

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Php
Kapat