Önceki dersimizde sayfalarımızı modüler parçalara bölmeyi ve tek bir merkezden yönetmeyi öğrenmiştik. Bu dersimizde ise web sitelerinde kullanıcıların giriş yapmış kalmasını sağlayan, alışveriş sepetlerini hafızada tutan Oturum Yönetimi (Session ve Cookie) konusunu işleyeceğiz.
İnternet protokolleri (HTTP) yapısı gereği "hafızasızdır". Yani siz bir sayfadan diğerine geçtiğinizde, sunucu sizin az önce giriş yapan kişi olduğunuzu unutur. Bu durumu çözmek ve kullanıcıyı tanımak için iki farklı yöntem kullanırız.
1. Session (Oturumlar) Verileri kullanıcının bilgisayarında değil, doğrudan sunucu tarafında güvenli bir şekilde saklar. Tarayıcı kapatıldığı an bu veriler otomatik olarak silinir.
Kullanım Alanları: Kullanıcı giriş sistemleri, yönetim paneli kontrolleri, alışveriş sepetleri.
Kritik Kural:
$_SESSIONkomutlarını kullanabilmek için sayfanın en üstünde, henüz hiçbir HTML veya boşluk karakteri gönderilmeden öncesession_start();fonksiyonunu çalıştırmak zorundasınız.
2. Cookie (Çerezler) Verileri sunucuda değil, kullanıcının kendi tarayıcısında (bilgisayarında) saklar. Belirli bir son kullanma tarihi vardır ve tarayıcı kapatılsa bile o süre dolana kadar bilgisayarda kalmaya devam eder.
Kullanım Alanları: "Beni Hatırla" kutucukları, site dil tercihleri, tema seçimleri (koyu/açık mod) veya reklam takipleri.
Güvenlik Notu: Veriler kullanıcının bilgisayarında düz metin olarak saklandığı için şifre gibi hassas veriler asla çerezlerde tutulmamalıdır.
Kod Örneği
Aşağıdaki kod yapısında hem bir oturum başlatıp veri yüklemeyi hem de uzun süreli bir çerez (cookie) tanımlamayı görebilirsiniz:
<?php
// 1. SESSION KULLANIMI
session_start(); // Oturumu en başta başlattık
// Oturuma veri atama
$_SESSION["kullanici"] = "Gökhan";
$_SESSION["rol"] = "Yönetici";
// Başka bir sayfada bu veriyi okumak için:
echo "Aktif Oturum: " . $_SESSION["kullanici"];
echo "<br>";
// 2. COOKIE KULLANIMI
// setcookie(isim, değer, süre_saniye)
// time() + 3600 ifadesi, şu andan itibaren 1 saat (3600 saniye) geçerli demektir
setcookie("site_dili", "tr", time() + 3600);
// Çerezi ekrana yazdırmak için:
if (isset($_COOKIE["site_dili"])) {
echo "Seçili Dil Çerezi: " . $_COOKIE["site_dili"];
}
?>
Not: session_destroy(); komutu mevcut tüm oturum verilerini silerek kullanıcının güvenli çıkış yapmasını sağlar.
Bu dersle birlikte temel PHP mantığının en önemli adımlarını tamamlamış oldunuz. Bir sonraki dersimizde, verilerimizi kalıcı olarak saklayacağımız ve gerçek projelerin kalbi olan "MySQL Veri Tabanı Bağlantısı" konusuna geçiş yapacağız.
php session kullanımı, php cookie çerezler, php dersi 10,
Hiç yorum yok:
Yorum Gönder