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