Php ile Oturum Yönetimi

Üyelik sistemlerinin temelini oturum yönetimi oluşturur. İlk olarak sql adında veritabanımızı oluştururuz. veritabanımızı oluşturduktan sonra 3 sütunlu uyeler isimli tablomuzu oluşturuyoruz. Bunun için aşağıdaki sql sorguyu kullanıyoruz.

Üyemizin adı “deneme” şifresi ise “12345” tir. Üyemizin adını kodumuzda deneme olarak görüyoruz. Fakat şifremizi karışık rakamlar ve harfler şeklinde görüyoruz. Bu güvenliğimiz için alınmış bir önlemdir. Veri tabanına bizim iznimiz olmadan bir erişim olursa üyelerimizin şifreleri elde edilemez.

İlk olarak index.php sayfamızı oluşturalım:

Bu sayfa içeriği olarak ziyaretçimiz üye girişi yapmış ise hoş geldin diyoruz. Üye girişi yapmamış ise üye girişi yapması gerektiğini belirterek giriş yapması için üye giriş formumuzu gösteriyoruz.
Kodlarda yaptığımız açıklamalardan da yola çıkarak ilk olarak session_start(); ile oturum başlatıyoruz. Eğer mevcut bir oturum varsa oturumun devam etmesini sağlıyoruz. Sonra isset() fonksiyonu ile oturum değişkenimizi kontrol ediyoruz. Oturum yoksa üye giriş formu, varsa hoşgeldiniz diyerek oturumu başlatıyoruz.

Sırada giris.php sayfamızı oluşturmaya geldi. giris.php sayfamızı oluşturalım:<>

giris.php sayfamızda ilk olarak oturumun devam etmesi için session_start() kullanıyoruz. Daha sonra mysql bağlantımızı yaparak veritabanımızı seçiyoruz. Form alanından gelen değişkenleri strip_tags() ve mysql_real_escape_string() fonksiyonlarını kullanıyoruz. Strip_tags() fonksiyonu etiketlerini temizlemek için kullanılır. mysql_real_escape_string() ise mysql için zararlı olabilecek kodları filtreler. Güvenlik önlemlerinden sonra uyead ve sifre kontrollerini yaparız. Eksik alan varsa uyarı verir. Şifremiz veritabanında sha1() ile şifrelenmiş halde kayıtlı olduğundan şifremizi yine sha1() çevirmek zorundayız. Yoksa kullanıcı doğru şifre girse bile şifreler birbirinden farklı olacağından yanlış şifre girdi olarak kabul edilir. Şifremizi sha1’e çevirdikten sonra mysql sorgumuzu oluşturduk.

Daha sonra yeni bir sayfa oluşturarak admin.php olarak kaydederiz.içerik olarak:

Son adım olarak üyemizin çıkış yapabilmesi için cikis.php sayfamıza ihtiyacımız var.

Böylelikle basit bir üyelik sistemi oluşturmuş olduk. Yardım almak için forumlarımızdan yararlanabilirsiniz. Kolay gelsin.

Yazar: ilkay dincer

sitemizde 1 yazı eklemiş...

Share
  • semih imir

    hocam herşeyi dediğiniz gibi yapıyorum ama “üyelik bilgileri bulunamadı, tekrar deneyin ” hatasını alıyorum.veritabanım ve kodlarım doğru sizce sorun nerede olabilir ?

  • hocam veritabanıyla bağlamayı yapamadım daha detaylı anlatsanız db bglmyı

  • Kaan

    Merhaba,ben sitemdeki bir sayfaya sisteme giriş yapılmadan girilmesini istemiyorum ne yapmam gerekir?

  • @zafer
    bunu yapabilmeniz için php ve mysql (veya alternatiflerini) öğrenmelisiniz…
    ancak bunun kısa metrajlı bir film olmadığını baştan belirtmek isterim…
    mutlaka yönetim panelli bir site yapmak isterseniz: size tavsiyem şu an dahiwebde de kullanmış olduğumuz wordpress olacaktır.

  • zafer

    slm arkadaslar. çalışmalarınız ve yorumlarını için tşk ler.. ben dreamweaverde sitemi yaptım. local olark sorunsuz çalışıyor. ama siteme yönetim paneli nasıl ekleyeceğim.
    mesela http://www.siteadı.com/admin yazınca bana panel gelmeli. adımı şifremi girip buradan siteme yeni resim yeni yzı ilan işte sitemde yer alan konulara nasıl eklemler yapıcam . yardım edermisniz?

  • @Mehmet Avcılar
    her yerde hata olabilir..!
    bu konuda net bir şey söylemek zor…
    hata mesajları varsa biraz daha yardımcı olabiliriz…
    kolay gelsin

  • Mehmet Avcılar

    arkadaşlar merhaba.
    benim bir solrunum var. yardımcı olacağınızı tahmin ediyorum.
    ben php bir sayfayı netten indirdim. resimlerini ,yazılarını değiştirdim.
    istediğim hale getirdikten sonra yayına attın fakat site gözükmüyor. neyapabilirim?
    nerede hata yapmış olbilirim ? yardımcı olur musunuz?
    ilgilerinize şimdiden teşekkür ederim.

  • mdye

    OTURUM açılırken beşdefa yanlış şifre girildiğinde pencere bişey sormadan direk kapması içn ne yapabilrim hepsini yaptım ama oturum 5 defa yanlış şifre girdikten sonra pencerenin direk kapanmasını yapamadım

    • php sunucu taraflı bir dildir, php ile tarayıcıyı kapatmanız mümkün değildir, onun yerine javascript kullanarak kapatmaya çalışırsanız sorununuz çözülür 🙂

  • @Mehmet Özdemir
    kodlar normalde çalışıyor… tekrar kontrol etmenzi tavsiye ederim… kolay gelsin

  • Mehmet Özdemir

    Benimde problemim Burak Bey’in ki gibi. Yani http://localhost/admin.php direkt görüntüleniyor. Diğer arkadaşlarda deneyip sonucu yazabilir mi?

  • çağdaş

    burak sadece burası admin sayfası yazmasının nedi kod da <? var inculedinin başında o<?php olacak o zman inculede oluyor

  • @Burak
    normalde çalışması lazım… dosyalara doğru isim verip vermediğinizi kontrolle başlayabilirsiniz…

  • Burak

    Öncelikle emeğiniz için teşekkürler,
    Kodları tamamen sizin yaptığınız şekilde derledim, ancak açılan sayfada hiçbir sorgu yapmadan her şekilde( şifre ve kullanıcı adı girmeden, vs.) admin sayfasına ulaşıyorum ‘BURASI ADMİN SAYFASI’ yazısını görüntüleyebiliyorum. Bu neden kaynaklanabilir? Cevap verirseniz sevinirim. Kolay gelsin

  • @mirzade
    yeni kayıt yapılırken kullanıcı adı varsa kayıt yaptırmayarak bu soruya cevap bulabilirsiniz…

  • mirzade

    hocam kodlar güzel,emeğine sağlık….
    aynı anda,aynı kullanıcı adı ve şifre ile , birden fazla yerde oturum açılmamasını nasıl sağlayabiliriz peki_?

  • osman o komutun doğru çalışabilmesi için mutlaka mysql bağlanmış olman gerekiyor…

  • osman

    mysql_real_escape_string() neden hata veriyor

  • @mustafa
    sha1 yapılmış bilgiyi geri alamazsınız… sha1 in var oluş amacı bu…

  • mustafa

    peki şifremi unuttum bölümünde kullanıcıya şifreyi mail attığımda şifre gerçek şekli ile gözükmüyor. şifreli gözüküyor. sha1 i nasııl çözüp gerçek şifreyi verecez.

  • @Mehmet kara
    göz ucuyla kontrol ettiğim kadarıyla kullanıcı adı ve şifre doğruysa session doğru şekilde başlatılıyor… bu durumda kullanıcı adı ve şifreyi kontrol etmekte fayda var.
    “Üyemizin adı “deneme” şifresi ise “12345” tir.”
    iyi günler…
    bu arada artık güncel bir oturum kontrol yazmanın zamanıda gelmiş…

  • Mehmet kara

    Merhabalar paylaşım gerçekten güzel elinize sağlık.
    Yalnız ben bu kodları uyguladığımda admin.php sayfasında tekrardan index.php sayfası (include ile getirdiğimiz) görünüyor. Yani bir şekilde oturum açılamıyor. Neden olabilir.

  • @azerios
    selam kardeş… ben hemen bir hızlı kurs vereyim:
    http://www.dahiweb.com/php-haber-script
    biraz daha gelişmişini isterseniz:
    http://www.dahiweb.com/php-haber-scripti-2
    sormak istediğiniz şeyler olursa çekinmeyin sorun…

  • azerios

    Selam bana basit php haber scripti yazilimini ogreden biri lazim msn aliyev21@gmail.com

  • sena

    elinize sağlık.ben bu kodları aynı şekilde yazdım fakat giriş e bastığım anda şifre veritabanındakiyle uyuşmasa bile index sayfasını açıyor.sorun nerde olabilir?

  • @havacılık haberleri
    evet kodlar çalışıyor…

  • PHP5 üzerinde bu kodlar sorunsuz çalışıyor mu arkadaşlar? Paylaştığınız için teşekkür ederim.

  • Çok Teşekkürler Mustafa Bey.

  • @Cengizhan
    i f(!isset($_SESSION[‘uye’]))
    { // eğer üye giriş yapmamış ise kodlar burada olacak}
    el se
    {ec ho ” (b) script (k) location.href=’index.php’; (b) /script(k)”; }
    aradaki boşlukları almayı ve (b) > (k) < yapmayı unutmayın...

  • Teşekkürler Güzel bir çalışma olmuş. Fakat admin girişi yapıldıktan sonra tekrar index.php dosyasına girmek istediğimde boş sayfa ile karşılaşıyorum. Ben direk giriş yapılmışmı kontrol edilip giriş yapılmışsa anasayfama yönlendirmek istiyorum. Nasıl yapabilirim.

  • @acipinarli2
    sevindim… yardımcı olabildiysek ne mutlu bize…

  • acipinarli2

    hocam çok teşekkürler. bu konu o kadar yardım etti ki bana. size attığım maillerdeki sorunu çözdüm sonunda. 🙂

  • Pingback: Anonim()

  • cansu

    günlerdir böyle bir örnek arıyorum. çok teşekkürler yazı için.

  • @Marif
    Oturum açmak ile habere kayıt eklemek farklı şeylerdir. Kullandığınız haber ekleme scripti içerisinde oturum kontrolü varsa mutlaka o oturum şartlarına uymanız gerekir.
    benim sitemde anlattığım basit bir haber ekleme scripti var… onda oturum kontrolü gerekmiyor… ancak oturum kontrol için yer ayrılmış durumda inceleyebilirsiniz..
    dediğim gibi haber eklemek ayrı bir şey, oturum kontrol etmek ayrı bir şey…

    http://www.dahiweb.com/php-haber-scripti-2

  • Marif

    Ama mysqle bağlanmadan nasıl oturum açılıyor.ben direk oturum açmadan haber ekle diyorum eklemiyor.Sanırım oturum açılmadığından eklemiyor olabilir mi?

    Teşekkürler

  • @marif
    Eğer kullanıcı adı ve şifre sormadan oturum başlatmak istiyorsanız mysqle bağlanmanızı gerek yok… aşağıdaki komutu yazdığınızda oturum açılmış olur.
    $_SESSION[‘oturum’]=”oturum açtık”;

  • Benim anlatmak istediğim mysqlim var.ama
    ——————-
    ben direk kullanıcı adı ve şifre sormadan oturumu başlatmak istiyorum.aşağıdaki kodlar üzerinden yorum yaparsanız memnun olurum.
    ———————-
    0) {
    header(\”Location: giris.php\”);
    }

    $tablo_login = \”SELECT * FROM login\”;
    $sorgu_login = mysql_query($tablo_login);
    if(empty($HTTP_POST_VARS)) {
    include \”head.php\”;
    —————————-

  • @Marif
    Merhabalar… Açıkcası sorunuzu tam olarak anlayamadım.
    Eğer; oturum direk başlatmak istiyorsanız mysqle ihtiyacınız yok.
    $_SESSION[‘oturum’]=”oturum açtık”;
    demeniz yeterlidir.

    Farklı bir bilgi için yeniden sorarsanız size yardımcı olmaya çalışırım.
    İyi günler…

  • Marif

    Merhaba,ben aşağıdaki kodlarda oturumu şifre sormadan direk mysql’e bağlanarak başlatmak istiyorum,nasıl yapabilirim.
    —————————-
    0) {
    header(“Location: giris.php”);
    }

    $tablo_login = “SELECT * FROM login”;
    $sorgu_login = mysql_query($tablo_login);
    if(empty($HTTP_POST_VARS)) {
    include “head.php”;
    ————————

  • @tansu
    aslında şu an bende yeni oturum yönetimimle uğraşıyordum. bu yorum üstüne geldi. evet şifreleri md5 yaptıktan sonra, sha1 de yapıyorum, sonrada substr ile sadece belli yerlerini alıyorum. sanırsam artık şifreyi çözmek isteyenin eline kodlanmış şifremizi versek bile vatandaşlar uğraşmadan çözemezler 🙂
    $sifre=substr(sha1(md5($sifre)),15,5); gibi…
    bu arada eğer aynı sunucuda aynı programı kullanan birileri varsa bizim şifremize gerek kalmadan kendi sitelerinde açtıkları şifrelerlede sitemizde oturum açabiliyorlar 🙂 bu da işin güzel tarafı… o yüzden sadece sitemize özel kodlama keyleri kulanmamız gerekiyor…
    bunların ayrıntısını sonra anlatırım…

  • elinize sağlık güzel paylaşım birde bu paylaşıma md5 ile şifrenebilen üye kayıt sistemi eklenebilirse süper olur.

  • Pingback: » Php Admin Paneli()

  • ahmet

    giris.php kısmında javascript yönlendirme kodunu nasıl dahil edeceğiz bilgi verebilirmisiniz

    • yonlendirme için
      echo “location.href=’admin.php’;”;
      yazılabilir…
      eğer javascript engellenmişsede html destekli yonlendirme yapılabilir…

  • ilkay

    rica ederim işinze yaradıysa ne mutlu bana

  • Selçuk

    güzel anlatım ellerinize sağlık çok işime yaradı