Thursday, October 30, 2014

Mengenal Cookies pada PHP dan Cara Menggunakannya


Dengan PHP kita bisa membuat, menghapus, menyimpan dan mengambil serta mengubah data pada Cookies. Cookies digunakan untuk menyimpan informasi yang dibutuhkan sebuah website dan ditaruh pada komputer client. Singkatnya Cookies ini mirip dengan Session namun tidak disimpan pada server melainkan pada komputer client.

Apakah itu Cookies?

Cookies adalah informasi yang berupa file kecil yang ditanam pada komputer client. Cookies biasanya digunakan oleh sebuah website untuk mengidentifikasi data pengguna. Data yang disimpan pada Cookies dikirim bersamaan dengan request yang dilakukan oleh browser terhadap suatu halaman website.

Karena tersimpan pada client makan data pada Cookies harus bersifat sekunder dan publik akses, tidak boleh berupa data primer dan rahasia seperti nama user dan password. Hal ini karena selain tidak aman jika dilihat oleh client juga Cookies bisa dinonaktifkan oleh pengguna, jadi bisa mengganggu proses kerja website jika data pada Cookies bersifat primer.

Contoh pemakaian Cookies yang paling sering kita temui misalnya pada website toko online dengan sistem cart (keranjang belanja). Saat pengguna memilih-milih barang dan memasukknanya kedalam keranjang belanja maka data ini akan disimpan pada cookies. Dengan demikian server tidak terbebani jika ada banya user yang sedang berbelanja online.

Cara membuat Cookies dengan PHP

Untuk membuat Cookies digunakan fungsi setcookie(). Saat dijalankan, fungsi setcookie() mengirim HTTP cookie ke komputer client. Cookie ini berupa variabel yang di kirim oleh server ke browser. Cookie biasanya berupa file text kecil yang ditanam pada komputer pengguna.

Cara penulisan fungsi setcookie()

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

Keterangan Parameter:
  • name, wajib diisi, merupakan nama dari cookie
  • value, wajib diisi, merupakan nilai dari cookie
  • expire, opsional, merupakan batas waktu expired cookie
  • path, opsional, merupakan path server sebuah cookie
  • domain, opsional, merupakan nama domain sebuah cookie
  • secure, opsional, merupakan tanda kalau cookie harus dikirim melalui protokol HTTPS

Contoh penggunaan fungsi setcookie()

<?php  

//Contoh set cookie dengan nama=cart, nilai=2, expired=30 hari, path= /
setcookie("cart", "2" , time() + (86400 * 30), "/");  

// Catatan : 86400 = 1 hari (3600 detik x24jam)  
?>  

Cara mengambil data dari Cookie

Untuk mengambil data dari Cookie digunakan variabel super global $_COOKIE dengan atribut nama Cookie.

Contoh script PHP untuk mengambil data dari Cookie

<?php  
if(!isset($_COOKIE["cart")) {  
  echo "Cookie tidak ditemukan!";  
} else {  
  echo "Nilai untuk Cookie dengan nama cart = ". $_COOKIE["cart"];  
}  
?>  

Cara mengubah nilai pada Cookie

Untuk mengubah data dari Cookie bisa dilakukan dengan memakai cara yang sama saat membuat Cookie, yaitu menggunakan fungsi setcookie().

Contoh script PHP untuk mengubah nilai pada Cookie

<?php  

//Mengubah cookie dengan nama=cart menjadi bernilai 3
setcookie("cart", "3" , time() + (86400 * 30), "/");  
 
?>  

Cara Menghapus Cookie

Sebetulnya Cookie akan otomatis terhapus setelah waktu expired tercapai. Namun uUntuk menghapus cookie sewaktu-waktu bisa dilakukan dengan cara mengeset waktu expired dengan waktu sebelum sekarang, misal diisi dengan satu jam yang lalu. Sebaiknya sebelum menghapus cookie kosongkan dulu variabel super global $_COOKIE denga fungsi unset().

Contoh script PHP untuk menghapus Cookie

<?php  

//Mengosongkan variabel super global $_COOKIE
unset($_COOKIE["cart"]);

//Mengubah expired cookie dengan nama=cart dengan waktu satu jam sebelumnya
setcookie("cart", "" , time() - 3600);  
 
?>  

Cara mengecek Cookie pada komputer pengguna

Untuk mengecek Cookie diaktifkan atau tidak pada komputer pengguna kita bisa mengirimkan cookie dengan nama test dengan nilai tertentu lalu membaca cookie tersebut. Jika mengembalikan nilai sesuai dengan data yang diset berarti Cookie pada browser pengguna telah diaktifkan.

Contoh script PHP untuk mengecek Cookie

<?php  
setcookie("test", "1", time() + 3600, '/');  
if(count($_COOKIE) > 0) {  
  echo "Cookies telah aktif";  
} else {  
  echo "Cookies tidak aktif";  
}  
?>  
Referensi:

1 komentar: