EğitimPHP

PHP Dersleri – Ders 5: Session Ve Cookie

Cookie ve Session ne işe yarar?

Tarayıcıda veri depolayarak kullanıcının giriş bilgileri gibi verilerin depolanarak program düzeyinde kullanıcı tanımının yapılabilmesine olanak sağlar. Böylece “çerezler” temizlenmediği veya cookie süresi dolup otomatik silinmediği sürece oturumunuz sonlandırılmaz.

Bir önceki dersimizde önceden ayarladığımız kodları geliştirerek devam edeceğiz.

SESSION İLE GİRİŞ SENARYOSU

İlk olarak index.php eğer yok ise oluşturalım:

<!DOCTYPE html>
<html>
<body>

<?php session_start(); ?>

<h2>PHP GET FORM örneği</h2>

<?php if($_SESSION['giris'] == 1) echo "Giriş yapmış durumdasınız: ".$_SESSION['kull']; ?>

<form action="/giris.php" method="post">
First name:<br>
<input type="text" name="isim" value="Value değerini silebilirsin">
<br>
Last name:<br>
<input type="text" name="soyisim" value="Value değerini silebilirsin">
<br><br>
<input type="submit" value="Gönder">
</form>

<p>Gönder tuşuna basıldığında giris.php adlı dosyada çalışacak kodda $_POST['isim'] ve $_POST['soyisim'] adlı veriler belirtilmiş name değerini almış kutuların verilerini alacaklar. HTML'deki name değişkeni bunu belirler. GET'den pratik açıdan tek farkı budur.</p>

</body>
</html>

 

“giris.php” adlı dosyamızın içeriği:

Alınan veri: <?php

$veri = $_POST['veri'];

$veri2 = $_POST['kullanici'];

echo $veri." ".$veri2;

 

Daha önceden oluşturulmuş olan bu dosyamızın içeriğini aşağıdaki içerik ile değiştirelim.

<?php

session_start();

function giriskontrol($kullanici, $sifre){

if($kullanici == "admin"){

if($sifre == "1234"){

return true;

}

}

return false;

}

if(giris($_POST['kullanici'], $_POST['sifre'])){

echo "Giriş başarılı, anasayfaya şu linkten dönebilirsiniz: <a href=\"/\">Link</a>";

$_SESSION['giris'] = 1;

$_SESSION['kull'] = $_POST['kullanici'];

}else{

echo "Kullanıcı adı veya şifre hatalı";

}

 

Burada gördüğümüz şey şu:

  1. Kullanıcı index.php’ye giriyor, ancak $_SESSION’un “giris” verisi “1” e eşit olmadığından giriş yapmış durumdasınız mesajını almıyor.
  2. Kullanıcı giriş yapıyor, eğer kullanıcı adı admin, ve şifre de 1234 ise $_SESSION verileri ayarlanıyor. Kullanıcı ana menüye döndüğünde ise bu veriler girildiğinden mesaj gözüküyor.

Anlamamız gerekenler:

  • Session verilerini belirlemeden önce session_start(); komutunu kullanmak zorundasınız.
  • Session kimlik bilgisi sayfa değişse dahi o tarayıcı üzerinde aktif kalır. Ve session’da depolanan bilgiler tarayıcıda depolanmaz, sunucuda depolanır. Ve bu güvenlik açısından çok önemli bir durumdur.
  • Kullanıcıya çıkış yaptırmak için “cikis.php” adlı bir dosya oluşturup içine aşağıdaki komutu girebilirsiniz
  • <?php
    
    session_destroy();
    
    echo "Çıkış yapmış bulunmaktasınız.";

     

  • session_destroy(); komutu session anahtarını siler. Dolayısı ile tüm session verilerine iletişim kesilir, ve onlar da silinir.

Session’un Cookie’den en büyük farkı verilerin tarayıcı üzerinde depolanmıyor oluşu. Bu da onu kullanıcı adıyetki seviyesi gibi belirlenecek muhtemel önemli şeyleri çok daha güvenli bir şekilde depolayabileceğimiz bir yer yapıyor.

COOKIE (çerezler) KULLANIMI

Cookie daha genel verileri depolamak için kullanabilirsiniz. Belirli ayarlar, otomatik giriş verileri veya otomatik giriş talimatı için gerekli kodların çalışması için bir anahtar.

Çerezler kullanıcının tarayıcısında depolanacağından hassas bilgileri depolamak için kullanmayın.

Veri belirlerken biraz daha farklı bir yol izlemek durumundasınız. Session’da bir array’ın verisini belirler gibi değişiklik yapıyorduk, ancak cookie’de bir fonksyon kullanmak zorundayız. Ve bunun yanında bir bayatlama süresi de eklemek zorundayız. Süre dolduğunda cookie silinir, aktif oturumlar kapatılır vs.

<?php

setcookie("cookie adı", "veri");

echo $_COOKIE["cookie adı"];

setcookie("cookie adı", "veri", time()+3600); // 3600sn = 1 saat geçerli cookie.

 

Cookie silme işlemi

Bu biraz daha tuhaf. Cookie’leri vakitlerini -‘ye çekerek silebiliyoruz. Alternatif olarak bir fonksyon belirleyip bu zahmetten kendinizi kurtarabilirsiniz. Aşağıdaki örneklerde bunu da vereceğim.

<?php

setcookie("cookie adı", "", time()-3600);

//cookie silinir.

 

Kolay fonksyonumuz:

function cookieSil($cookieAdı){

setcookie($cookieAdı, "", time()-3600);

}

//Örnek kullanım: cookieSil("girisBilgisi");

//vs.

 

Bu dersimiz burada son bulmuştur!

Umarız ki yardımcı olabilmişizdir, sorularınızı yazmaktan çekinmeyin. Bir sonraki dersimizde görüşmek üzere! Kendinize iyi bakın!

 

 

 

 

 

 

Etiketler

Ahmet Emin Koçal

Uzun yıllar bilgisayar teknolojileri ile ilgilenmiş, PHP alanında iyi miktarda bilgiye sahip bir destekçi arkadaşınız/hocanız.

Alakadar Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca bak

Close
Close

Adblock tespit edildi

Lütfen Adblock'unuzu devre dışı bırakıp bizlere destek olun ki sizlere yardımcı olmaya devam edebilelim