Yazılım Yazarı Menu

Permalink:

Oturum Fonksiyonları; session (Oturumlar)

Session (Oturum) Nedir?

Biz tarayıcımızı açtığımızda bizim tarayıcımız bir oturum üretir ve bu oturuma ait bir anahtar tutar. Siteler bu oturumu ve anahtarı kullanarak sizin kullanıcı girişi yapmanızı sağlar. Siteyi kodlayan kişinin istediği bilgiler, sizin oturum anahtarınız ile oluşturulmuş bir dosyada o sitenin sunucusunda saklanır. Siz aynı oturum içinde tekrar o siteyi ziyaret ettiğinizde daha önceden giriş yapıp yapmadığınız bu dosyanın içine konulan bilgilerle kontrol edilir. Bu oturum anahtarına sahip kişinin dosyasında daha önce giriş mevcutmu diye.

Siz tarayıcınızda yeni sekme açtığınızda veya yeni pencere daima o oturum anahtarı aynıdır fakat tüm pencereleri kapatıp, tarayıcınızı yeniden açtığınız zaman artık oturum anahtarı değişmiştir. Buda demek oluyor ki; biz bir siteye giriş yaptığımızda tarayıcımızı tamamen kapatıp tekrar açarsak o siteye artık giriş yapmamış olarak gözükeceğizdir. İşte bunun sebebi oturum anahtarının değişmesidir. Bu yüzden siteler “Beni hatırla” gibi bir checkbox koyup kullanıcı bunu seçerse cookie dediğimiz ve sonraki derste göreceğimiz verileri kullanıcının bilgisayarına kaydederler ve sonraki girişlerde bunu kontrol ederler böylece oturum anahtarımız değişsede birkez giriş yaptıysak o girişi tekrar açtığımızda görürüz.

session_start Fonksiyonu

Session için en temel fonksiyonlarımızdan birisi session_start(); fonksiyonudur. Bu fonksiyon oturum kullanmak istediğimiz sayfaların en başına, tüm php ve html kodlardan önce konulmalıdır. Aksi takdirde hata verir ve çalışmaz. Kullanımı oldukça basittir. Deneme için index.php adında bir sayfa oluşturuyoruz ve sayfanın en üstüne yazıyoruz;

<?php
session_start();
?>

Evet, artık bu sayfada oturum başlayacaktır.

session_destroy Fonksiyonu

Session için en teme fonksiyonlarımızdan biriside session_destroy(); fonksiyonudur. Bu fonksiyon oturum anahtarına ait oturum dosyasını silmemize yarar. Kullanıcı giriş sistemi için düşünürsek kullanıcı çıkış yapacağı zaman session_destroy fonksiyonunu çalıştırırız ve session bilgileri silinir. cikis.php adında bir dosya oluşturup kodumuzu yazalım;

<?php
session_destroy();
?>

session_id Fonksiyonu

session_id(); fonksiyonu bize kullanıcının o anki oturum anahtarını verir. Bu anahtar değişik şekillerde farklı amaçlar için kullanılabilir. Bazı kişiler cookie’ya bu anahtarı atayıp oturumun daha sonraki girişlerde kontrolünü bununla yapmaktadırlar ama bu yöntem sağlıklı değildir. Cookie’lar kişilerin bilgisayarlarında depolandığı için kişinin bilgisayarına giren bir virüs cookie bilgilerini kötü amaçlı kişilere iletirse session_id de onların eline geçmiş olacaktır ve ilerde bahsedeceğimiz, önleminide anlatacağımız Session Hijacking dediğimiz açık sisteminizde varsa kullanıcının bu oturum anahtarıyla, o kullanıcı gibi rahatlıkla sisteme giriş yapacaktır. Bu yüzden session_id bilgisini mümkün olduğunca dışa yansıtmadan yada ilerde bahsedeceğimiz şifreleme yöntemleri ile şifreleyerek yansıtmak daha doğru olacaktır. Bu oturum kavramını anlamanız için session_id bizim değerli bir fonksiyonumuzdur. Bu yüzden index.php dosyasını açıp 2.satırında bu fonksiyonu yazmanızı istiyorum. index.php’nin son hali şu şekilde olmalıdır;

<?php
session_start();
echo session_id();
?>

Bu kod ile oturum anahtarını ekrana yazdırdık. index.php’ye girip oturum anahtarınıza bakınız daha sonra tüm tarayıcıyı kapatıp tekrar girerek bakınız. Anahtarın değiştiğini gözlemlemiş olacaksınız.

Session Nasıl Atanır?

Oturumumuzu açtık, anahtarımızı yazdırdık ama bu oturumun içine nasıl veri atacağız ve bu verileri nasıl çağırıp, nasıl kullanacağız şimdi bunları görelim.

<?php
$_SESSION["degeradi"] = "deger";
?>

Session’ın atamadaki yapısını yukarıdaki gibi gösterebiliriz. Dikkat ettiyseniz oturumlar arraylara işlevsel olarak ilişkileri olmasa bile benzemektedirler. Nasıl benzemektedirler, şöyle düşünürsek session_start(); deyip bir array açtığımızı varsayın ve bunun içine değerler atadığımızı çekerkende bu değerlerin adı yani indisiyle bu değeri çektiğimizi bu akımdan birebir arraylara benzemektedirler. Tabiiki yaptıkları iş çok farklıdır. Bunu yöntemi daha iyi anlatabilmek adına belirttim. Şimdi index.php’yi açalım ve bunun içinde bir giriş formu oluşturalım. Daha sonra bu giriş formundan gelen verileri kontrol edip istediğimiz kullanıcı adı ve şifreyle aynıysa kullancıya giriş yaptıran basit bir denem yapalım.

index.php;

<?php
session_start();
echo session_id();
if($_POST['girisyap']){ //Eğer girisyap post edilmişse, yani form gönderilmişse
if($_POST['kullaniciadi'] == "yazilimyazari" && $_POST['sifre'] == "yazilimyazari1234"){ //Kullanıcı adı yazilimyazari ve şifre yazilimyazari1234 olarak girilmişse
$_SESSION["girisdurumu"] = true;
$_SESSION["kullaniciadi"] = "yazilimyazari";
}else{ //Eğer kullanıcı adı ve şifre yanlışsa
echo 'Yanlış kullanıcı adı veya şifre girdiniz.';
}
}else{
echo '
<form action="" method="post">
Kullanıcı Adınız: <input type="text" name="kullaniciadi" />
Şifreniz: <input type="password" name="sifre" />
<input type="submit" name="girisyap" value="Giriş yap" /></form>';
}
?>

Şuan bu kodlarla kullanıcı, kullanıcı adı kısmına yazilimyazari ve şifre kısmına yazilimyazari1234 girerse session atayarak giriş yaptırdık. Eğer girdiği değerler buna eşit değilse yanlış giriş yaptığını söyledik.
Bu koda birkaç ekleme yapmamız gerekecek, şöyle ki; eğer kullanıcı zaten giriş yapmışsa bu form ve giriş kodları hiç çalışmayacak direk hoşgeldiniz syn. kullaniciadi şeklinde mesaj vermesini sağlayacağız.

index.php;

<?php
session_start();
echo session_id();
if($_SESSION['girisdurumu'] == true){
echo "Giriş yapılmış.Hoşgeldiniz Syn.".$_SESSION['kullaniciadi'];
}else{
if($_POST['girisyap']){ //Eğer girisyap post edilmişse, yani form gönderilmişse
if($_POST['kullaniciadi'] == "yazilimyazari" &amp;&amp; $_POST['sifre'] == "yazilimyazari1234"){ //Kullanıcı adı yazilimyazari ve şifre yazilimyazari1234 olarak girilmişse
$_SESSION["girisdurumu"] = true;
$_SESSION["kullaniciadi"] = "yazilimyazari";
}else{ //Eğer kullanıcı adı ve şifre yanlışsa
echo 'Yanlış kullanıcı adı veya şifre girdiniz.';
}
}else{
echo '
<form action="" method="post">
Kullanıcı Adınız: <input type="text" name="kullaniciadi" />
Şifreniz: <input type="password" name="sifre" />
<input type="submit" name="girisyap" value="Giriş yap" /></form>';
}
}
?>

İyi günler dilerim.
Yazılım Yazarı

(1123) kez okundu.

  • Yorum bırakıyor olduğunuz için teşekkürler.
escort bayan ankara ankara escort ankara escort bayan sıhhıye escort