2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri

PHP'de çerezler (cookies), kullanıcıların tarayıcıları aracılığıyla sunucu tarafından saklanabilen küçük veri parçacıklarıdır. Çerezler, web sitelerinin kullanıcıya özgü bilgileri hatırlamasına ve saklamasına olanak tanır. Örneğin, oturum açmış kullanıcıların kimlik bilgilerini veya tercihlerini tutabilirler.

Çerez Oluşturma ve Kullanımı

PHP'de çerezler oluşturmak için setcookie() fonksiyonu kullanılır.

setcookie(name, value, expire, path, domain, secure, httponly);

[!info]

  • name: Çerezin adı.

  • value: Çerezin değeri.

  • expire: Çerezin süresi (Unix zaman damgası formatında). Opsiyonel olarak belirtilmezse, tarayıcı kapanana kadar geçerli olur.

  • path, domain, secure, httponly: Opsiyonel parametreler.

PHP ile Çerez Oluşturma/Alma

Aşağıdaki örnek, "user" adında ve "John Doe" değerinde bir çerez oluşturur. Çerezin geçerlilik süresi 30 gün sonra sona erecektir (86400 * 30). "/" yol parametresi, çerezin web sitesinin tümünde geçerli olacağını belirtir.

Daha sonra "user" çerezinin değerini alırız (global değişken olan $_COOKIE kullanarak). Ayrıca, çerezin tanımlı olup olmadığını kontrol etmek için isset() fonksiyonunu kullanırız.

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 30 gün süreyle geçerli
?>

<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
  echo "Çerez '" . $cookie_name . "' tanımlı değil!";
} else {
  echo "Çerez '" . $cookie_name . "' tanımlı!<br>";
  echo "Değeri: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>

[!NOTE] Bu örnekte, setcookie() fonksiyonuyla "user" adında bir çerez oluşturulur ve sonrasında aynı sayfada bu çerezin varlığı kontrol edilir (isset() fonksiyonu ile).

Çerez Değerini Değiştirme

Çerez değerini değiştirmek için aynı setcookie() fonksiyonunu kullanabilirsiniz. Eski çerezi yenisiyle değiştirebilirsiniz.

Çerezi Silme

Bir çerezi silmek için, çerezin son kullanma tarihini geçmiş bir zaman olarak ayarlamanız yeterlidir.

Çerezlerin Etkin Olup Olmadığını Kontrol Etme

Kullanıcıların tarayıcılarında çerezlerin etkin olup olmadığını kontrol etmek için, $_COOKIE dizisinin boş olup olmadığını kontrol edebilirsiniz.

[!info]

Bu örnekte, count($_COOKIE) ile tarayıcıda mevcut çerez sayısını kontrol ediyoruz. Eğer çerezler etkinse, "Çerezler etkin." mesajı görüntülenir.

Çerezler, web uygulamalarında kullanıcı oturumlarını sürdürmek, tercihleri hatırlamak ve kişiselleştirilmiş içerik sunmak gibi birçok amaçla kullanılır. Ancak gizlilik ve güvenlik konularına dikkat edilmesi önemlidir.

PHP Oturumu Nedir?

Bir uygulama ile çalışırken, onu açar, bazı değişiklikler yapar ve sonra kapatırsınız. Bu, bir oturuma benzer. Bilgisayar kim olduğunuzu bilir. Uygulamayı ne zaman başlattığınızı ve ne zaman kapattığınızı bilir. Ancak internet üzerinde bir sorun var: web sunucusu kim olduğunuzu veya ne yaptığınızı bilmez, çünkü HTTP adresi durumu korumaz.

Oturum değişkenleri, kullanıcı bilgilerini saklayarak bu sorunu çözer (örneğin, kullanıcı adı, favori renk vb.). Oturum değişkenleri varsayılan olarak kullanıcı tarayıcıyı kapattığında sona erer.

Yani; Oturum değişkenleri, tek bir kullanıcı hakkında bilgi tutar ve bir uygulama içindeki tüm sayfalarda kullanılabilir.

[!İpucu]

Kalıcı bir depolama gerekiyorsa, verileri bir veritabanında saklamak isteyebilirsiniz.

[!info]

PHP Oturumu Nasıl Başlatılır? Bir oturum, session_start() işlevi ile başlatılır.

[!NOTE]

Oturum değişkenleri PHP global değişkeni olan $_SESSION ile ayarlanır.

[!NOTE]

Not: session_start() işlevi belgenizin en başında olmalıdır. Herhangi bir HTML etiketinden önce.

PHP Oturum Değişkeni Değerlerini Almak

Oturum değişkenleri her yeni sayfada ayrı ayrı iletilmez, bunun yerine her sayfanın başında açtığımız oturumdan (session_start()) alınır.

Ayrıca tüm oturum değişkeni değerlerinin global $_SESSION değişkeninde saklandığına dikkat edin

[!NOTE]

Kullanıcıyı Nasıl Tanırım? Nasıl Biliyor ki Benim Kim Olduğumu?

Çoğu oturum, kullanıcının bilgisayarında şu şekilde görünen bir kullanıcı anahtarı ayarlar: 765487cf34ert8dede5a562e4f3a7e12. Sonra başka bir sayfada oturum açıldığında, bilgisayarı bu kullanıcı anahtarı için tarar. Eşleşme varsa, o oturuma erişir, yoksa yeni bir oturum başlatır.

Bir PHP Oturum Değişkenini Değiştirmek

Bir oturum değişkenini değiştirmek için üzerine yazmanız yeterlidir:

Bir PHP Oturumunu Sonlandırma

Tüm global oturum değişkenlerini kaldırmak ve oturumu sonlandırmak için, session_unset() ve session_destroy() işlevlerini kullanın:

Last updated