Php 8 Session Tanımlama

Php 8 Session Tanımlama

PHP 8'de oturum (session) tanımlama, kullanıcının sunucuyla etkileşimde bulunduğu süre boyunca veriyi saklamayı sağlayan temel bir tekniktir. Oturumlar, genellikle kullanıcı kimlik doğrulama işlemleri, alışveriş sepeti gibi uzun süreli işlemler için kullanılır.

1. Session Başlatma

Oturum başlatmak için her sayfanın en üstünde session_start() fonksiyonunu çağırmanız gerekir. Bu fonksiyon, mevcut bir oturumu yeniden başlatır veya yeni bir oturum oluşturur. Oturum başladıktan sonra, PHP her kullanıcıya benzersiz bir oturum kimliği (session ID) atar ve bu kimlik sayesinde sunucu kullanıcıyı tanır.

Örnek:

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

Bu kod, oturumun başlamasını sağlar. Eğer oturum daha önce başlatılmamışsa, yeni bir oturum oluşturur.

2. Session Değişkenleri Tanımlama

Oturum başlatıldıktan sonra, oturum değişkenleri tanımlanabilir. Oturum değişkenleri, $_SESSION süper global dizisiyle tanımlanır ve kullanılır. Bu değişkenler, oturum boyunca herhangi bir sayfada kullanılabilir.

Örnek:

<?php session_start(); // Oturumu başlat // Oturum değişkeni tanımla $_SESSION["kullanici_adi"] = "Ahmet"; $_SESSION["rol"] = "Yönetici"; // Veriyi ekrana yazdır echo "Kullanıcı Adı: " . $_SESSION["kullanici_adi"] . "<br>"; echo "Kullanıcı Rolü: " . $_SESSION["rol"]; ?>

Bu örnekte, "kullanici_adi" ve "rol" oturum değişkenleri olarak tanımlanır. Oturum kapanana kadar bu değişkenler saklanır ve her sayfada kullanılabilir.

3. Session Değişkenlerini Okuma

Oturuma kaydedilen veriler, $_SESSION dizisi ile okunabilir. Oturum süresince bu veriler sayfalar arasında taşınabilir.

Örnek:

<?php session_start(); // Oturumu başlat // Oturum değişkenlerini kontrol et if (isset($_SESSION["kullanici_adi"])) { echo "Kullanıcı Adı: " . $_SESSION["kullanici_adi"]; } else { echo "Oturumda kullanıcı adı yok."; } ?>

Bu kod, daha önce oturumda saklanan kullanıcı adını okur ve ekrana yazdırır.

4. Session Değişkenlerini Güncelleme

Bir oturum değişkeninin değerini güncellemek için aynı oturum değişkenine yeni bir değer atamak yeterlidir.

Örnek:

<?php session_start(); // Oturumu başlat // Kullanıcı adını güncelle $_SESSION["kullanici_adi"] = "Mehmet"; // Güncellenmiş değeri yazdır echo "Güncellenmiş Kullanıcı Adı: " . $_SESSION["kullanici_adi"]; ?>

Bu örnekte, oturumda saklanan kullanıcı adı güncellenir.

5. Session Değişkenlerini Silme

Bir oturum değişkenini silmek için unset() fonksiyonu kullanılabilir.

Örnek:

<?php session_start(); // Oturumu başlat // Belirli bir oturum değişkenini sil unset($_SESSION["kullanici_adi"]); // Silindikten sonra kontrol et if (!isset($_SESSION["kullanici_adi"])) { echo "Kullanıcı adı oturumdan silindi."; } ?>

Bu kod, oturumda saklanan "kullanici_adi" değişkenini siler.

6. Tüm Session Değişkenlerini Silme

Tüm oturum değişkenlerini silmek için session_unset() fonksiyonu kullanılır. Bu fonksiyon, oturumu sona erdirmeden yalnızca oturum verilerini temizler.

Örnek:

<?php session_start(); // Oturumu başlat // Tüm oturum değişkenlerini sil session_unset(); // Oturum değişkenlerinin silindiğini onayla if (empty($_SESSION)) { echo "Tüm oturum verileri silindi."; } ?>

Bu kod, oturumdaki tüm verileri temizler ancak oturum devam eder.

7. Session Sonlandırma

Oturumu tamamen sona erdirmek için session_destroy() fonksiyonu kullanılır. Bu fonksiyon, oturumu sona erdirir ve oturum verilerini sunucudan siler. Ancak oturum kimliğini saklayan çerezi otomatik olarak silmez.

Örnek:

<?php session_start(); // Oturumu başlat // Oturumu sona erdir session_destroy(); // Oturum verisi olup olmadığını kontrol et if (!isset($_SESSION)) { echo "Oturum sona erdirildi."; } ?>

Bu kod, oturumu tamamen sona erdirir ve tüm oturum verilerini temizler.

8. Session Kimliğini Yenileme

Oturum sabitleme (session fixation) saldırılarına karşı güvenlik sağlamak için oturum kimliğini (session ID) önemli işlemlerden sonra yenilemek iyi bir uygulamadır. Bu, session_regenerate_id() fonksiyonuyla yapılır.

Örnek:

<?php session_start(); // Oturumu başlat // Oturum kimliğini yenile session_regenerate_id(true); // Yeni oturum kimliğini yazdır echo "Yeni Oturum Kimliği: " . session_id(); ?>

Bu kod, oturum kimliğini yeniler ve eski kimliği geçersiz kılar.

9. Session Ayarları

php.ini dosyasında oturumlarla ilgili ayarlar yapılabilir. Ayrıca, bazı ayarları kod içinde de yapabilirsiniz.

  • session.gc_maxlifetime: Oturumun sona erme süresi.
  • session.cookie_lifetime: Oturum çerezinin ne kadar süreyle geçerli olacağı.

Örnek:

ini_set('session.gc_maxlifetime', 3600); // Oturum 1 saat sürecek

10. Session ve Güvenlik

  • HTTPS: Oturum kimliğinin güvenli bir şekilde aktarılması için HTTPS kullanılmalıdır.
  • Session Fixation Önleme: session_regenerate_id() ile oturum kimliği yenilenmelidir.
  • Güvenli Çerezler: Çerezlerin secure ve httponly bayrakları ile korunması önemlidir.

PHP 8'de oturumlar, kullanıcının tarayıcı kapansa bile oturumun sunucuda saklanmasını sağlayarak uzun süreli işlemler ve kullanıcı bilgileri yönetimi için kullanışlı ve güvenli bir çözüm sunar.



Yorum Ekle

Üzerine gel