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.
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
Çerezi Silme
Bir çerezi silmek için, çerezin son kullanma tarihini geçmiş bir zaman olarak ayarlamanız yeterlidir.
<?php
setcookie("user", "", time() - 3600); // Geçmiş bir zamanı belirtmek çerezi siler
?>
Ç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.
<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Çerezler etkin.";
} else {
echo "Çerezler etkin değil.";
}
?>
</body>
</html>
[!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.
<?php
// Oturumu başlat
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Oturum değişkenlerini ayarla
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Oturum değişkenleri ayarlandı.";
?>
</body>
</html>
[!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
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Önceki sayfada ayarlanan oturum değişkenlerini yazdır
echo "Favori renk " . $_SESSION["favcolor"] . ".<br>";
echo "Favori hayvan " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
[!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:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Bir oturum değişkenini değiştirmek için, sadece üzerine yazın
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
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:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Tüm oturum değişkenlerini kaldır
session_unset();
// Oturumu sonlandır
session_destroy();
?>
</body>
</html>
Last updated
Was this helpful?