Yükleniyor...

Oturum Yönetimi

Oturum Yönetimi, PHP tabanlı web uygulamalarında kullanıcı bilgilerini ve durumunu sunucu tarafında tutmanın temel yöntemidir. HTTP protokolü stateless olduğundan, her istek bağımsızdır ve kullanıcıyla ilgili bilgiler otomatik olarak korunmaz. Oturumlar, kullanıcı kimlik doğrulaması, rol yönetimi, alışveriş sepeti verileri ve diğer kişiselleştirilmiş bilgileri yönetmek için kritik öneme sahiptir.
PHP’de oturum yönetimi, session_start(), $_SESSION dizisi ve session_destroy() gibi fonksiyonlar aracılığıyla gerçekleştirilir. Bu fonksiyonlar, veri saklama, erişim ve oturumun güvenli şekilde sonlandırılması süreçlerinde temel yapı taşlarıdır. Ayrıca, session_regenerate_id() gibi fonksiyonlar, oturum sabitleme (session fixation) gibi güvenlik açıklarını önlemede önemlidir.
Bu derste, oturumları başlatma, veri kaydetme, verileri alma, oturumun etkinliğini kontrol etme ve güvenli bir şekilde kapatma konularını öğreneceksiniz. Ayrıca, nesne yönelimli PHP (OOP) yaklaşımıyla oturum yönetiminin nasıl daha güvenli ve sürdürülebilir hale getirilebileceğini göreceksiniz. Bu bilgi, yazılım geliştirme ve sistem mimarisi bağlamında güvenli ve ölçeklenebilir web uygulamaları oluşturmanızı sağlar.

Temel Örnek

php
PHP Code
<?php
// Oturumu başlat
session_start();

// Oturum verilerini kaydet
$_SESSION['kullanici'] = 'ahmet';
$_SESSION['rol'] = 'admin';

// Oturum verilerini oku
echo 'Hoşgeldiniz, ' . $_SESSION['kullanici'] . '! Rolünüz: ' . $_SESSION['rol'] . "\n";

// Oturumun aktif olup olmadığını kontrol et
if(isset($_SESSION['kullanici'])){
echo "Oturum aktif.\n";
}else{
echo "Oturum yok.\n";
}

// Oturumu sonlandırmak için (opsiyonel)
// session_destroy();
?>

Yukarıdaki örnekte session_start() fonksiyonu yeni bir oturum başlatır veya mevcut oturumu devam ettirir. $_SESSION süper global dizisi, kullanıcı adı ve rol gibi bilgileri saklamak için kullanılır. isset() fonksiyonu ile oturum değişkeninin varlığı kontrol edilir ve olası hata durumları önlenir.
session_destroy() fonksiyonu oturumu sonlandırır ve sunucuda saklanan tüm oturum verilerini temizler. Bu, güvenlik ve oturum kapatma işlevleri için önemlidir. Bu temel örnek, oturum yönetiminin PHP’de nasıl gerçekleştirildiğini ve pratik uygulamalarda kullanıcı kimlik doğrulama ve kişiselleştirme gibi senaryolara nasıl entegre edilebileceğini gösterir.

Pratik Örnek

php
PHP Code
<?php
// Nesne Yönelimli Oturum Yönetimi
class OturumYoneticisi {
public function __construct() {
if(session_status() === PHP_SESSION_NONE){
session_start();
}
}

public function set($anahtar, $deger){
$_SESSION[$anahtar] = $deger;
}

public function get($anahtar){
return $_SESSION[$anahtar] ?? null;
}

public function has($anahtar){
return isset($_SESSION[$anahtar]);
}

public function remove($anahtar){
unset($_SESSION[$anahtar]);
}

public function destroy(){
session_destroy();
}
}

// Kullanım
$oturum = new OturumYoneticisi();
$oturum->set('kullanici', 'mehmet');
$oturum->set('rol', 'editor');

if($oturum->has('kullanici')){
echo 'Hoşgeldiniz, ' . $oturum->get('kullanici') . '! Rolünüz: ' . $oturum->get('rol') . "\n";
}

// Tek bir değişkeni sil
$oturum->remove('rol');
?>

Pratik örnek, OturumYoneticisi sınıfı ile nesne yönelimli oturum yönetimini gösterir. Yapıcı metod, oturum durumunu kontrol eder ve gerekirse başlatır. set() ve get() metodları oturum verilerini eklemek ve almak için kullanılır. has() ve remove() metodları değişken kontrolü ve silme işlemleri sağlar. destroy() tüm oturumu sonlandırır.
Bu yaklaşım, kodun sürdürülebilirliğini artırır, güvenliği geliştirir ve oturumların yönetimini merkezi bir yapı üzerinden kontrol etmeyi sağlar. Ayrıca, bu yöntem oturum verilerini veri tabanına veya cache sistemine entegre etmeyi kolaylaştırır.

PHP’de oturum yönetiminde en iyi uygulamalar, sadece gerekli verileri saklamak, oturum yaşam döngüsünü doğru yönetmek ve performansı optimize etmektir. session_regenerate_id() ile oturum kimlikleri güvenli hale getirilebilir.
Yaygın hatalar arasında var olmayan değişkenlere erişim, session_destroy() yanlış kullanımı ve eşzamanlı oturum yönetiminde hatalar bulunur. Hata ayıklama için loglama ve izleme mekanizmaları kullanılabilir. Güvenlik açısından, oturum verilerini şifrelemek, HTTPS kullanmak ve oturum sürelerini sınırlamak önerilir.

📊 Referans Tablosu

PHP Element/Concept Description Usage Example
session_start() Oturumu başlatır veya devam ettirir session_start();
$_SESSION Oturum verilerini saklamak için dizidir $_SESSION['kullanici'] = 'ahmet';
session_destroy() Oturumu sonlandırır ve verileri siler session_destroy();
isset($_SESSION['anahtar']) Oturum değişkeninin varlığını kontrol eder if(isset($_SESSION['kullanici'])){}
session_regenerate_id() Yeni oturum ID’si üretir session_regenerate_id(true);

Oturum yönetimi, kullanıcı durumunu ve kimlik doğrulamasını web uygulamalarında güvenli bir şekilde tutmayı sağlar. Nesne yönelimli yaklaşım ile OturumYoneticisi sınıfı, kodun sürdürülebilirliğini artırır ve güvenliği güçlendirir.
İleri adımlar arasında oturumları veri tabanı ile entegre etme, dağıtık oturum yönetimi ve modern PHP framework’lerinde oturum kullanımı yer alır. Resmi dokümantasyonun incelenmesi ve açık kaynak projelerin analizi, pratik becerilerin geliştirilmesinde önemlidir.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek