PHP COOKIES PHP HTML : SESSION Cookies merupakan fasilitas seperti halnya session, cookies merupakan teknik pertama kali yang dikenalkan oleh Netscape untuk membuat adanya suatu state koneksi antara klien dan server web (session). Hanya saja mekanisme pencatatan dilakukan pada setiap klien (dalam hal ini browser web). Cookies merupakan data yang disimpan dalam browser web, yang menjadi identitas yang selalu akan dikirimkan kepada server setiap kali terjadi kontak antara klien dan server, apabila diminta. Data ini pertama kali dikirimkan oleh server kemudian disimpan dalam browser web. Cookies atau data kecil dari server yang disimpan dalam browser sifatnya temporer seperti halnya session. Cookies secara default akan hilang apabila browser ditutup (close). Seperti halnya session maka perintah untuk membuat cookies harus dilakukan pertama kali, sebagai perintah pertama dalam script kita. Teknik mengirimkan cookies dengan mengikutsertakan fungsi setcookies ( namacookies, nilaicookies ) Nama cookie akan dikenal sebagai nama variabel secara otomatis apabila browser mendukung cookies. Life-time atau masa berlaku cookies jika tidak ada informasi tambahan sama seperti halnya session, sampai dengan browser web ditutup (close).
Sintaks lengkap cookies: Setcookie( namecookie,data-nilai, masaberlaku, path, domain,secure) Keterangan : nama cookie : nama cookie yg diinginkan data nilai : data utk cookie masa berlaku : waktu berlakunya cookie dalam hitungan detik, dan jam sekarang ditambah dengan berapa detik. Data berupa integer tanggal. Path : Domain : CONTOH : KETERANGAN nama path yang valid untuk berlakunya suatu cookie. Jika script berbeda path dengan script yang melakukan pendefinisian cookie, maka cookie bisa jadi tidak berlaku. nama domain yang digunakan untuk membuat proses kirim-mengirim cookies dilakukan apabila pada domain yang benar (membatasi domain) digunakan agar proses pengiriman cookies dilakukan pada mode koneksi yang secure (aman). Data berupa integer Nama Script : use_sookie_06.php Set cookie ( mycookies, Kuekecil,time() + 300); <DOCUTYPE HTML PUBLIC -//DTD HTML 4.0 Transitional//EN > <html> </head><title>demo Cookies 06</title></head> <body> <hl>democookies 06</hl> echo Cookies anda : $mycookies ; </body> </html> Script diatas memperlihatkan masa berlaku script yang hanya selama 5 menit. Fungsi time() diganakan untuk mendapatkan waktu saat script mengirimkan cookies ditambah dengan jumlah detik masa berlakunya.
OUTPUT : HASIL cript usesookie_06php setelah di-refresh. Cookies untuk Counter Kita dapat menggunakan cookies untuk dijadikan sebagai parameter counter untuk menghitung jumlah pengunjung situs kita. Jumlah pengunjung bisa diidentifikasi, Bisa saja seorang pengunjung melakukan akses dokumen lebih dari satu dokumen pada saat yang bersamaan, karenanya kita harus mencatat siapa saja yang tengah melakukan akses kepada server kita. Cara sederhana dengan menggunakan cookies adalah dengan memberikan sebuah cookies berupa nomor kepada setiap pengunjung. Katakan cookies ini diberi nama tamu, setiap pengunjung akan diberi nomor unit tamu. Nomor urut akan disimpankan kepada browser, sehingga setiap kali seorang pengunjung mengakses situs kita, nilai cookies tamunya diperiksa, apabila belum mempunyai nomor maka pengunjung diberi cookies dengan menggunakan setcookie( tamu,nomor). CONTOH : Nama script : use_cookies_05.php if (! Isset($tamu)) { $namafile= /tmp/counter.txt ; // temp/ Nama folder if (!file_exists($namafile)) { $fp=fopen($namafile, w ) $write($fp, 0 ); fclose($fp); } $fp=fopen($namafile,r); $urut=fread($fp,5); fclese($fp); $urut++;
$fp=fopen($namafile, w ); $write($fp,$urut); fclose($fp); setcookie( tamu,$urut); if (!isset($ok)) { header( Location: $PHP_SELF. >OK=1 ); exit; } } <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN > <head><html> <title>demo Cookies 05</title></head> <body> <h1>demo Cookies untuk counter</h1> echo Anda pengunjung ke :$tamu ; echo Script file :. $PHP_SELF ; </body></html> Keterangan : Script di atas digunakan untuk diuji coba pada Apache+PHP4 pada Linux. Jika ingin dicoba untuk Windows dengan PWS/IIS+PHP4 maka pada $namafile, hilangkan nama direktori /tmpl -nya. Pada script use_cookies_05.php ini dilakukan proses pemeriksaan terlebih dahulu apakah variabel $tamu (dalam hal ini sebenarnya nama cookies) diperiksa terlebih dahulu dengan menggunakan fungsi Isset(), fungsi Isset() : memeriksa apakah variabel tersebut sudah didefinisikan dan ada isinya atau belum. Jika belum ada script melakukan pembacaan file dan counter.txt untuk membaca nomor urut pengunjung yang terakhir. jika file counter.txt belum ada maka dilakukan proses pembuatan file counter.txt dan diisi dengan nilai 0. Jika telah ada maka nilai yang ada didalamnya dibaca dimasukkan ke dalam variabel $urut. Nilainya ditambah dengan satu kemudian disimpankan lagi ke dalam file counter.txt. Nilai yang telah ditambahkan dijadikan sbgai nilai cookies yang diberikan kpd browser. Pada script use_cookies_05.php ini dilakukan proses redirect yang memanggil dirinya sendiri sehingga nilai dan counter bisa langsung ditampilkan. Ada proses Refresh yang dipaksakan oleh script yakni dengan menggunakan fungsi header().
Fungsi header( Location: $PHP_SELF.?OK=l ) akan memaksa script untuk memanggil dirinya sendiri, karena isi dan $PHPSELF adalah nama script itu sendiri, variabel global yang menyimpan nama script yang sedang diakses pengunjung. Pada perintah header ini diberikan parameter OK=1, untuk menandakan bahwa variabel/parameter OK adalah parameter yang berasaldari Variabel $PHP_SELF ; dan pemanggilan diri sendiri. Pada bagian Address dari browser ditampilkan nama script dengan parameter string OK=1 yang menunjukkan proses pemanggilan diri sendiri OUTPUT : Tampilan use_cookieso_05.php Script use_cookies_05.php memberikan hasil yang berbeda apabila dihostingkan pada MS ITS Windows, script tidak dapat DI Refresh Dgn sempurna seperti halnya pada Linux. Pada Windows tetap akan dibutuhkan proses Refresh, seperti ditunjukkan pada dua screen berikut: Tampilan use_cookieso_05.php (No Refresh)
Tampilan use_cookieso_05.php (bisa refresh) Penghapusan Cookies Penghapusan cookies dilakukan dengan memberi nilai kosong kepada suatu cookies. CONTOH : Nama script use_cookies_out.php setcookie ( mycookies, ); <!DOC TYPE HTMLPUBLIC //W3//CJJ DTD HTML 4.0 Transitional//EN > <html> <head> <title>demo Cookies - Cut</title> </head><body> <hl>democookies - Out/hl> echo Cookies anda $mycookies ; </body> </html> Tampilan cookies yang akan diberikan sama seperti pada contoh diatas yaitu : pemberian cookies. Pada kesempatan pertama nilai cookies masih ditampilkan, karena browser baru mendapatkan proses penghapusan, script dijalankan pada saat masih mempunyai data cookies, jadi nilai cookies masih berlaku.
Pada kesempatan kedua pada saat di-refresh atau dipanggil kembali cookies baru tidak mempunyai data, karena browser mengirimkan informasi bahwa cookiesnya telah dikosongkan oleh setcookie ( mycookies, ); Dan hasilnya sbb: Tampilan use_cookies_out_php Setelah di Refresh : menjalankan perintah setcookie ( mycookies, ); Begitu juga utk cookies Header( Set-cookie:mycookies=Kue; ); yg terdapat pada script use_cookies_02.php diatas, akan dikosongkan atau dihapus isi cookies nya. CONTOH 1 : Nama script: use_cookies_03.php setcookie( mycookies, KueKecil ) <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN > <html> <head><title>demo Cookies 03</title></head>
OUTPUT 1 : <body> <h1>democookies 03</h1> echo Cookies anda : $mycookies ; </body> </html> Jika kemudian use_cookies_03.php dipanggil setelah menjalan atau melaksanakan Use_Cookie_06php diatas. untuk menunjukkan apakah cookies masih bisa dikenali atau tidak oleh Use_cookies_03.php, Lihat hasilnya dibawah ini : Ternyata Tampilan di atas telah menunjukkan bahwa cookies telah benar - benar dikosongkan/dihapus.
Tampilan use_cookie_03.php sebelum use_cookie_06.php lebih dari 5 menit dijalankan. Tampilan use_cookie_03.php setelah use_cookieo6.php lebih dan5 menit dijalankan. Ternyata Nilai cookies tidak ditampilkan karena sudah lewat masa berlakunya. CONTOH 2 : Nama script: use.cookies_01.php setcookie( mycookies, your Cookies ); <!DOCTYPE HTML PUBLIK -//W3C//DTD HTML 4.0 Transitional//EN > <html> <head><title>demo Cookies 01</title></head> <body> <h1>democookies 01</h1>
OUTPUT 2: echo Cookies anda : $mycookies ; </body> </html> Tampilan use_cookies_01.php Nilai cookies tidak ditampilkan pada saat pertama kali. Klik tombol Refresh ke 2X, maka isi cookies akan ditampilkan seperti terlihat dibawah ini: KETERANGAN : 1. Nilai cookies baru akan ditampilkan pada saat use.sookies_0l.php ditampilkan untuk kedua kalinya, hal ini disebabkan pada
kesempatan pertama usecookies_01.php ditampilkan server baru saja mengirimkan cookiesnya dan menaruh ke dalam browser. 2. Pada saat Referesh atau dipanggil kedua, browser melakukan permin taan kepada server sambil memberitahukan isi cookies kepada server, sehingga path kesempatan kedua tersebut script use_cookiesol.php telah mengenali cookiesnya. 3. Cookie di dalam PHP dianggap sebagai variabel, sehingga pada kesempatan kedua isi variabel $mycookie diisi cookie yang dikirimkan oleh browser kepada server. Informasi cookie berasal dari server, disimpan dalam browser, kemudian dikirimkan kepada server lagi pada saat melakukan permintaan (request) kepada server. 4. Pengiriman cookies selalu dilakukan oleh browser yang kemampuan cookiesnya dihidupkan pada saat berkomunikasi dengan server yang meminta informasi cookies. untuk mengidentifikasi state koneksi dan permintaan ke servernya. CONTOH 3 : Script use_cookies_02.php berikut ini menggunakan fungsi header untuk memberi kan cookies kepada browser. Fungsi ini sama seperti halnya mengguna kan setcookie. Hasil yang ditampilkan juga sama. Nama script use_cookies_02.php header( Set-cookie:mycookies=Kue; ); <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN > <html> <head><title>demo Cookies 02</title></head> <body> <h1>democookies 02</h1> echo Cookies anda : $mycookies ; </body> </html> KETERANGAN :
1. Utk Run, jalankan di browser internet. Pemakai harus mengklik tombol Refresh utuk dapat mengetahui data cookies yg dikirimkan oleh server. 2. Pada use_cookies_02.php ini nilai cookies diubah. Pada kesempatan pertama apabila setelah menjalankan use_cookies_o1.php, kemudian di Refres Nilai cookies akan ditampilkan 3. Nilai cookies pada use_cookies_02.php suda ada atau dimasukan dulu dlam script terlebih dahulu, Lalu di refresh, kemudian close, setelah itu di Refresh kembali akan ditampilkan nilai cookie. OUTPUT 3 : Lihat hasilnya dibawah ini : Tampilan set cookies 02.php diata setelah ditekan tombol Refresh pertama. Setelah di disclose tampilan pertama, lalu direfresh kembali akan muncul nilai cookies nya = Kue.