PHP web dilinde Session(Oturum) Kontrolü

PHP ile Session (Oturum) Kontrolü

PHP, web geliştirme dünyasında yaygın olarak kullanılan bir sunucu taraflı betik dilidir. Web uygulamalarında kullanıcı deneyimini kişiselleştirmek ve kullanıcı bilgilerini takip etmek için Session (Oturum) mekanizması hayati bir rol oynar. Bu yazıda, PHP’de oturum kontrolünün nasıl yapıldığına dair temel bilgileri ve örnekleri inceleyeceğiz.

Session Nedir?

Session, bir kullanıcının web sitesiyle etkileşimi süresince sunucu tarafında tutulan verilerdir. Örneğin, bir e-ticaret sitesinde kullanıcının sepetine eklediği ürünler, kullanıcının oturumu süresince saklanabilir. Session’lar, çerezlerden (cookies) farklı olarak, verileri sunucu tarafında saklar ve bu sayede daha güvenli bir çözüm sunar.

PHP’de Session Başlatma

Bir oturumu başlatmak için `session_start()` fonksiyonu kullanılır. Bu fonksiyon, oturum verilerini başlatır veya mevcut bir oturumu devam ettirir.

<?php
session_start();
?>

`session_start()` fonksiyonu her zaman sayfanın en başında, herhangi bir çıktı (HTML, metin vb.) gönderilmeden önce çağrılmalıdır. Aksi takdirde PHP hataları ile karşılaşabilirsiniz.

Session Verisi Oluşturma ve Okuma

Session verileri, global `$ _SESSION` dizisi aracılığıyla oluşturulur ve okunur.

<?php
session_start();

// Session verisi oluşturma $_SESSION["username"] = "kullaniciadi"; $_SESSION["email"] = "[email protected]";

// Session verisini okuma echo "Kullanıcı Adı: " . $_SESSION["username"] . "<br>"; echo "E-posta: " . $_SESSION["email"] . "<br>"; ?>

Session Verisini Silme

Session verilerini silmek için `unset()` fonksiyonu veya `session_destroy()` fonksiyonu kullanılabilir.

`unset()` ile Tekil Veri Silme

Belirli bir session verisini silmek için `unset()` fonksiyonu kullanılır.

<?php
session_start();
unset($_SESSION["username"]);
?>

`session_destroy()` ile Tüm Session’ı Silme

Tüm session verilerini silmek ve oturumu sonlandırmak için `session_destroy()` fonksiyonu kullanılır. Bu fonksiyon, genellikle kullanıcı çıkış yaptığında kullanılır.

<?php
session_start();
session_destroy();
?>

`session_destroy()` fonksiyonu oturumu tamamen sonlandırır ve tüm session verilerini siler. Bu işlem geri alınamaz.

Güvenlik Notları

  • Session verilerini saklarken, hassas bilgileri (parola, kredi kartı bilgileri vb.) doğrudan saklamaktan kaçının. Bu tür bilgileri şifreleyerek saklamak daha güvenlidir.
  • Session ID’lerini tahmin etmeyi zorlaştıracak şekilde yapılandırın. PHP, bu konuda varsayılan olarak iyi bir güvenlik seviyesi sunar, ancak ek önlemler alınabilir.
  • Oturumları düzenli olarak sonlandırın (timeout). Kullanıcının uzun süre işlem yapmaması durumunda oturumu otomatik olarak sonlandırmak, güvenlik açısından önemlidir. PHP’de `session.gc_maxlifetime` yapılandırma seçeneği ile bu süre ayarlanabilir.

Bu temel bilgiler, PHP’de oturum kontrolünü anlamanıza ve kullanmaya başlamanıza yardımcı olacaktır. Daha karmaşık senaryolar için (örneğin, veritabanı tabanlı oturum yönetimi) daha ileri düzey teknikleri araştırmanız gerekebilir.