cookiebrowserpreferensiMenengah3 mnt baca

Cookie

Menyimpan data kecil di browser pengunjung dengan setcookie: preferensi tema dan fitur ingat saya.

Cookie adalah data kecil yang disimpan di browser pengunjung dan dikirim otomatis setiap request ke websitemu. Cocok untuk preferensi (tema gelap/terang, bahasa), bukan untuk data sensitif.

php
<?php
// setcookie HARUS sebelum output apapun, seperti session_start
setcookie("tema", "gelap", time() + 86400 * 30, "/"); // 30 hari, berlaku di seluruh situs

// Membaca (tersedia di request BERIKUTNYA, bukan langsung)
$tema = $_COOKIE["tema"] ?? "terang";
echo "Tema aktif: " . htmlspecialchars($tema);

Parameter setcookie(): nama, nilai, waktu kedaluwarsa (timestamp), dan path / agar berlaku di semua halaman.

Contoh: pengalih tema

php
<?php
// tema.php?set=gelap
if (isset($_GET["set"]) && in_array($_GET["set"], ["gelap", "terang"], true)) {
    setcookie("tema", $_GET["set"], time() + 86400 * 30, "/");
    header("Location: index.php");
    exit;
}
php
<?php
// index.php
$tema = $_COOKIE["tema"] ?? "terang";
?>
<body class="<?= $tema === "gelap" ? "dark" : "light" ?>">
  <a href="tema.php?set=<?= $tema === "gelap" ? "terang" : "gelap" ?>">
    Ganti tema
  </a>
</body>
php
<?php
setcookie("tema", "", time() - 3600, "/"); // kedaluwarsa di masa lalu = dihapus

Catatan teknis: Cookie sepenuhnya dikuasai user: bisa dilihat, diubah, dan dihapus lewat DevTools. Jangan pernah menyimpan password, role admin, atau status "sudah bayar" di cookie tanpa verifikasi server. Data sensitif simpan di session (di server), cookie hanya untuk preferensi non-kritis. Untuk cookie yang agak penting, set flag httponly agar tidak bisa dibaca JavaScript (melindungi dari XSS sederhana).