16- PHP'de Session ve Cookie Kullanımı

Giriş: Session ve Cookie Nedir?

Session ve cookie, web uygulamalarında kullanıcıların bilgilerini depolamak için kullanılan iki önemli kavramdır. Session, sunucu tarafında bilgileri saklamak için kullanılırken, cookie ise tarayıcı tarafında bilgileri saklamak için kullanılır.

1. Session Kullanımı

Session Başlatma ve Değer Atama:

<?php
// Session başlatma
session_start();

// Session'a değer atama
$_SESSION['kullanici_id'] = 123;
$_SESSION['kullanici_ad'] = 'John Doe';
?>

Session Değerine Erişme ve Kontrol:

<?php
// Session başlatma
session_start();

// Session değerlerine erişme ve kontrol
if (isset($_SESSION['kullanici_id'])) {
echo "Kullanıcı ID: " . $_SESSION['kullanici_id'];
} else {
echo "Oturum başlatılmamış";
}
?>

Session Değerini Silme:

<?php
// Session başlatma
session_start();

// Session değerini silme
unset($_SESSION['kullanici_id']);
?>

2. Cookie Kullanımı

Cookie Oluşturma:

<?php
// Cookie oluşturma (bir saat boyunca geçerli)
setcookie("kullanici_ad", "John", time() + 3600, "/");
?>

Cookie Değerine Erişme ve Kontrol:

<?php
// Cookie değerine erişme ve kontrol
if (isset($_COOKIE['kullanici_ad'])) {
echo "Kullanıcı Adı: " . $_COOKIE['kullanici_ad'];
} else {
echo "Cookie bulunamadı";
}
?>

Cookie Değerini Silme:

<?php
// Cookie değerini silme
setcookie("kullanici_ad", "", time() - 3600, "/");
?>

3. Güvenlik İpuçları:

  • Session Güvenliği: session_regenerate_id() fonksiyonunu kullanarak oturum kimliğini güncellemek, oturum saldırılarına karşı bir önlem sağlar.
<?php
// Session güvenliği
session_start();
session_regenerate_id(true);
?>
  • Cookie Güvenliği: secure ve HttpOnly özelliklerini kullanarak cookie güvenliğini artırabilirsiniz.
<?php
// Güvenli cookie oluşturma
setcookie("kullanici_ad", "John", time() + 3600, "/", "", true, true);
?>

4. Pratik Uygulama: Giriş ve Çıkış Yönetimi

Giriş Kontrolü:

<?php
session_start();

// Kullanıcı girişi kontrolü
if (isset($_SESSION['kullanici_id'])) {
echo "Hoş geldiniz, " . $_SESSION['kullanici_ad'];
} else {
echo "Giriş yapmadınız!";
}
?>

Çıkış Yapma:

<?php
session_start();

// Çıkış yapma
session_unset();
session_destroy();
echo "Çıkış yapıldı!";
?>