2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
Last updated
Last updated
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.
PHP'de çerezler oluşturmak için setcookie()
fonksiyonu kullanılır.
[!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.
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.
[!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ştirmek için aynı setcookie()
fonksiyonunu kullanabilirsiniz. Eski çerezi yenisiyle değiştirebilirsiniz.
Bir çerezi silmek için, çerezin son kullanma tarihini geçmiş bir zaman olarak ayarlamanız yeterlidir.
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.
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.
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 oturum değişkenini değiştirmek için üzerine yazmanız yeterlidir:
Tüm global oturum değişkenlerini kaldırmak ve oturumu sonlandırmak için, session_unset() ve session_destroy() işlevlerini kullanın: