Wednesday, October 29, 2008

Mengatur expire cookie di PHP

Di postingan sebelumnya kita sudah mencoba membuat sebuah cookie yang bersifat sementara. Artinya cookie yang datanya hilang ketika kita menutup web browser. Nah bagaimana ketika kita ingin membuat cookie yang datanya selalu ada meskipun web browser sudah tertutup ?

Mekanisme cookie yang seperti ini sangat berguna ketika kita ingin membangun sebuah aplikasi polling misalkan. Polling merupakan aplikasi jaja pendapat dimana pengunjung hanya diperbolehkan menyumbangkan suaranya satu kali. Jika kita tidak membatasi hak polling untuk masing-masing pengunjung, bisa jadi pengunjung hanya melakukan spam polling, tentunya itu akan sangat merugikan bukan ?
OK basa basinya cukup dulu, sekarang kita langsung praktek mengatur expire cookie :
kita tetap menggunakan fungsi setcookie() untuk membuat cookie, kita asumsikan cookie yang akan kita buat bernama "mycookie" dan nilai yang dimasukkan adalah "OK", letakkan fungsi setcookie ditempat sebelum header :

setcookie("mycookie", "OK", time()+(3600*24);
Baris di atas memiliki maksud bahwa cookie "mycookie" dengan nilai "OK" akan bertahan selama 24 jam (1 jam = 3600 detik). Tambahkan juga baris di bawah (letakkan di tengah-tengah body) untuk melakukan pengecekan cookie :
echo "mycookie = $_COOKIE[mycookie]";
Jalankan script di atas, sehingga hasil yang didapat adalah tulisan :
mycookie = OK
setelah itu remark (matikan) fungsi setcookie menjadi :
#setcookie("mycookie", "OK", time()+(3600*24);
coba jalankan lagi, hasil yang didapat akan tetap sama yaitu :
mycookie = OK
Nah itu tadi kita sudah membuat cookie dan data pada variabel cookie tersebut sudah tersimpan, sekarang apakah cookie itu tetap ada meskipun browser ditutup ? buktikan dengan menutup browser dan membuka lagi script di atas (ingat fungsi setcookie dalam keadaan ter-remark untuk memastikan bahwa kita tidak menciptakan cookie baru, melainkan membaca variabel cookie yang sudah ada pada saat eksekusi program pertama kali).
Selamat mencoba ... :)

2 comments:

santonsujarwo said...

ehm jadi sama kaya session_start gitu ya mas

Anonymous said...

mantaps nih tips cookiesx......gua coba nih... n gabung juga www.dinilms.co.nr