Php

Php Session Kullanımı Php Oturum İşlemleri

Session (Oturumlar) her web programlama dilinde olduğu gibi Php ‘de de mevcuttur. Kullanım alanlarını biz belirliyor olsakta, en büyük kullanım alanı, siteye giren kullanıcıların login olup olmadığı gibi, kontrolleri yapmak veya datalarını saklamakta kullanılır.

Sessionlar diğer çerezler gibi bizim tarafımızdan tam olarak yaratılıp silinmezler. Kullanıcı site ile bağlantı kurduğu anda, bir session id yaratılır. Taki web sitemiz den çıkana kadar, o session id  ile işlem yapar. Diğer bir silinme yöntemi ise sessionları hazırlarken yaşam döngüsünü bizler belirliyoruz. Yeni bir session yaratıldıktan sonra ne kadar hayatta kalsın sorusunun cevabını biz o yazılımı yaparken belirlemiş oluyoruz

 

Diğer çerezler ile ayıran en büyük özelliği ise sessionlar tarayıcıya direk olarak tanımlanmıyor. Cookies leri ele alırsak kullanıcının tarayıcısı ile bağlı olup, gerekli datalar kullanıcının bilgisayarında yer alır. Sessionlar ise sunucu tarafında saklanır ve tarayıcıya PHPSESSID adında içinde şifrelenmiş uzun, benzersiz bi session id gönderir. Tüm can alıcı data sunucu tarafında olur ve bu sessions id ile yönetilir. Bu olayı örnek vererek anlatmak gerekirse, domain sistemini düşünelim. Domain adresiniz sayısal veya alfabetik dizilerden oluşur. O değer tarayıcıya yazdığınızda DNS sunucuları asıl gitmeniz gereken Web Server ‘in ip adresine yönlendirir ve siteniz açılır. Domaini dns in çözmesi gibi php session lar Session id ile tüm verileri saklar ve işler.

 

Sessionlar php de Global değişkenler ile tanımlanıp kullanılabilir.

Sessions Oluşturma

Sunucunuzda ön tanımlı sessions lar açık değilse açmak için “session_start();” kullanılmalıdır. Ama sunucunuzda açık ise yeniden açamayacağı için hata verecektir.

session_start();
$_SESSION['ad_soyad'] = 'Onur TEZ';

Sessions lar yukarıda gördüğünüz gibi dizi gibi işlerler. İçerisine gireceğiniz datanın bir indis i ve değeri vardır. Bu değer düz sring yazı gibi array diziside alabilirle

session_start();
$_SESSION['oturum'] = array(“oturum” => True, “kadi”=>”onur”, girisZamani” => “2019-10-11 23:33:22”);
print_r($_SESSION['oturum']);

Ekran Çıktısı : Array ( [oturum] => 1 [kadi] => onur [girisZamani] => 2019-10-11 23:33:22 )

Bir Session Varlığını Kontrol Etme

Php de bir varlığın kontrolünü yaparken, yok ise hata almamak için isset() fonksiyonu kullanılır. Varsa True yoksa False olarak Bool türünde değer döner.

session_start();
var_dump(isset($_SESSION['uye_adi']));

Ekran çıktısı : bool(false)

Bir Session tanımlayıp yazdırma.

session_start();
$_SESSION['ad_soyad'] = 'Onur TEZ';
if (isset($_SESSION['ad_soyad'])){
   echo $_SESSION['ad_soyad'];
}

Ekran çıktısı : Onur TEZ

 

Sessions Temizleme / Silme

session_start();
$_SESSION['varlik'] = 'Selam Dünya !';//varlik adında bir session oluşturuk

unset($_SESSION['varlik']); // Sildik

//Kontrol ediyoruz, eğer varsa yazacak yokas artık session yok diye hata verecel
if (isset($_SESSION['varlik'])){
   echo $_SESSION['varlik'];
}else{
   echo "Session silinmiş şuan yok!";
}

 

Ekran çıktısı : Session silinmiş şuan yok!

 

 

Kullanıcıya ait tüm session ları silmek istiyorsak “session_destroy();” kullanmanız yeterlidir. Yani bi sitede oturumu kapat dediğimizde genelde bu olur.

 

Pekişmesi açısından Php Session kullanımını tam olarak anlamanız için php ile basit bir sayfa yapalım.

<?php session_start(); ?>

<!doctype html>
<html>
<head>
    <title>Session Kullanımı Örneği</title>
</head>
<body>
<h1>Örnek Form</h1>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

    Ad Soyad :<input type="text" name="ad_soyad">
    E-Posta  :<input type="text" name="eposta">

    <input type="submit" name="submit" value="Session Oluştur">
</form>

<br>


<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if(isset($_POST['eposta']))
        $_SESSION['eposta']=$_POST['eposta'];


    if(isset($_POST['ad_soyad']))
        $_SESSION['ad_soyad']=$_POST['ad_soyad'];

}
?>

<?php if(isset($_SESSION['eposta'])){ ?>
    Kayıtlı E-Posta : <b><?= $_SESSION['eposta']; ?></b>
<?php } ?>

<?php if(isset($_SESSION['ad_soyad'])){ ?>
    Kayıtlı Ad Soyad : <b><?= $_SESSION['ad_soyad']; ?></b>
<?php } ?>

</body>
</html>

php session kullanımı örnek php dosyası çıktısı

Biraz işinizi kolaylaştırmak için yukarıdaki kod bloğuna GitHub ve BitButcket den ulaşabilirsiniz