PHP : Cookies

Cookie adalah file teks kecil yang memungkinkan kalian menyimpan sejumlah kecil data (hampir 4KB) di komputer pengguna. Biasanya digunakan untuk melacak informasi seperti nama pengguna yang dapat diambil situs untuk mempersonalisasi halaman ketika pengguna mengunjungi situs web tersebut di kemudian hari.

Setting Cookie di PHP

Fungsi setcookie() digunakan untuk mengatur cookie di PHP. Pastikan kalian memanggil fungsi setcookie() sebelum output apa pun yang dihasilkan oleh skrip kalian karena jika tidak, cookie tidak akan ditetapkan oleh browser. Berikut sintaks dasar fungsi ini:

setcookie(name, value, expire, path, domain, secure);

Parameter dari fungsi setcookie() memiliki arti sebagai berikut:

ParameterDescription
nameNama cookie
valueNilai cookie. Jangan menyimpan informasi sensitif karena nilai ini disimpan di komputer pengguna.
expiresTanggal kedaluwarsa dalam format UNIX timestamp. Setelah waktu ini, cookie tidak dapat diakses. Nilai standarnya adalah 0.
pathTentukan path di server tempat cookie akan tersedia. Jika diatur ke /, cookie akan tersedia di seluruh domain.
domainTentukan domain untuk tempat cookie mis. Www.example.com.
secureBagian ini, jika ada, menunjukkan bahwa cookie harus dikirim hanya jika ada koneksi HTTPS yang aman.

Berikut adalah contoh yang menggunakan fungsi setcookie() untuk membuat cookie bernama username dan menetapkan nilai John Carter untuk itu. Ini juga menentukan bahwa cookie akan kedaluwarsa setelah 30 hari (30 hari * 24 jam * 60 menit * 60 detik).

<?php
// Setting a cookie
setcookie("username", "John Carter", time()+30*24*60*60);
?>

Catatan: Semua argumen kecuali namanya opsional. Kalian juga dapat mengganti argumen dengan string kosong ( “” ) untuk melewati argumen itu, namun untuk melewatkan argumen kedaluwarsa gunakan nol ( 0 ) sebagai gantinya, karena merupakan bilangan bulat.

Mengakses Nilai Cookie

Variabel superglobal PHP $_COOKIE digunakan untuk mengambil nilai cookie. Biasanya array asosiatif yang berisi daftar semua nilai cookie yang dikirim oleh browser dalam permintaan saat ini, dikunci dengan nama cookie. Nilai cookie individual dapat diakses menggunakan notasi array standar, misalnya untuk menampilkan username cookie yang ditetapkan dalam contoh sebelumnya, Kalian dapat menggunakan kode berikut.

<?php
// Accessing an individual cookie value
echo $_COOKIE["username"];
?>

Kode PHP dalam contoh di atas menghasilkan output berikut.

Merupakan praktik yang baik untuk memeriksa apakah cookie disetel atau tidak sebelum mengakses nilainya. Untuk melakukan ini, kalian dapat menggunakan fungsi PHP isset(), seperti ini:

<?php
// Verifying whether a cookie is set or not
if(isset($_COOKIE["username"])){
    echo "Hi " . $_COOKIE["username"];
} else{
    echo "Welcome Guest!";
}
?>

Kalian dapat menggunakan fungsi print_r() seperti print_r($_ COOKIE); untuk melihat struktur array asosiatif $_COOKIE ini, seperti array lainnya.

Menghapus Cookies

Kalian dapat menghapus cookie dengan memanggil fungsi setcookie() yang sama dengan nama cookie dan nilai apa pun (seperti string kosong) namun kali ini kalian perlu menetapkan tanggal kedaluwarsa di masa lalu, seperti yang ditunjukkan dalam contoh di bawah ini:

<?php
// Deleting a cookie
setcookie("username", "", time()-3600);
?>