Cookie
Menyimpan data kecil di browser pengunjung dengan setcookie: preferensi tema dan fitur ingat saya.
Apa itu cookie?
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.
Membuat dan membaca cookie
<?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
// 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
// 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>Menghapus cookie
<?php
setcookie("tema", "", time() - 3600, "/"); // kedaluwarsa di masa lalu = dihapusCatatan 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
httponlyagar tidak bisa dibaca JavaScript (melindungi dari XSS sederhana).