COOKIE
Kita telah belajar bagaimana menggunakan SESSION untuk menyimpan
data atau value supaya dikenali di beberapa script halaman web. Selain menggunakan SESSION untuk melakukan hal ini, Anda juga bisa menggunakan COOKIE.
Apa perbedaan antara
SESSION dan COOKIE? Dari sisi fungsi atau kegunaan, keduanya adalah sama, namun perbedaannya adalah jika SESSION value disimpan dalam server
web sedangkan value COOKIE disimpan dalam komputer client.
Memang keduanya ada plus dan minusnya. Kelebihan SESSION adalah bahwa user tidak bisa menghapus
value yang
tersimpan kecuali
dirinya
sendiri,
misal dengan menutup browser atau ketika dalam proses logout. Namun kelemahannya adalah ketika tiba-tiba
jaringan internetnya putus setelah proses login. Bila jaringannya putus, maka otomatis
SESSION akan terhapus sehingga apabila hal ini terjadi ketika Anda mengakses halaman
web yang terdapat autentifikasi maka Anda diharuskan login kembali.
Sedangkan COOKIE, value disimpan di komputer client. Dengan demikian value tersebut
tetap tersimpan meskipun jaringan internetnya putus atau dalam kondisi offline. Namun
kelemahannya adalah value COOKIE tersebut bisa dihapus oleh
orang
lain
yang juga menggunakan komputer tersebut, atau mungkin user komputer tersebut telah menge
set bahwa
browsernya tidak
bisa
menerima COOKIE sehingga
COOKIE tidak bisa tersimpan dalam komputer client.
Sehingga apabila ditanya, lebih baik pakai yang mana? COOKIE atau SESSION? Ya… hal ini saya serahkan kepada Anda saja. Sebagai gambaran, bahwa sistem login Google Mai sepertinya menggunakan
COOKIE,
demikian
pula dengan
Wordpress.
Namun
banyak juga situs atau aplikasi
yang menggunakan
SESSION untuk membuat
sistem login ini Saya sendiri lebih senang menggunakan SESSION ☺
Cara Menyimpan Value Ke Dalam COOKIE
Untuk menyimpan value ke dalam COOKIE caranya adalah dengan memberikan perintah
berikut ini:
setcookie("nama cookie",
value, expired time);
Pada perintah di atas, parameter ‘nama cookie’ bisa diisi dengan sebarang nama. Nama
COOKIE ini seperti halnya
Anda memberi nama pada SESSION. Parameter
‘value’.
nantinya diisi dengan value yang akan disimpan. Sedangkan parameter ‘expired time’ adalah lama waktu untuk mengatur masa berlaku COOKIE.
Catatan:
Nama COOKIE tidak boleh mengandung spasi
Expired Time dihitung dalam satuan detik
Contoh:
<?php
$kata = "Saya sedang belajar COOKIE";
setcookie("mycookie", $kata, time()+3600);
?>
Script di atas akan menyimpan value berupa teks ‘Saya sedang belajar COOKIE’ ke
dalam
COOKIE.
Bila script di
atas dijalankan,
maka
kita bisa lihat valuenya dalam
COOKIE.
Apabila Anda menggunakan Firefox, maka cara melihat COOKIE nya adalah:
1. Klik TOOLS > OPTIONS
2. Pilih menu tab PRIVACY
3. Klik tombol SHOW COOKIES
4. Kemudian dicari nama situsnya, karena Anda mencobanya melalui LOCALHOST maka LOCALHOST pada site name
5. Lalu akan tampil seperti pada gambar berikut ini
Oya… pada script di atas, parameter ‘expired time’ nya
diberikan time()+3600 itu maksudnya bahwa cookie tersebut akan disimpan selama 1 jam (3600 detik). Setelah 1 jam maka
cookie akan terhapus secara otomatis. Bila parameter ‘expired time’ ini tidak
dituliskan maka cookie akan terhapus begitu browser ditutup, seperti halnya SESSION.
Nah… konsep COOKIE
yang bisa diatur jangka waktu atau umurnya ini sering
dimanfaatkan oleh program-program
bisnis afiliasi. Mungkin Anda pernah mendenga
atau bahkan sering bahwa suatu program afiliasi X menggunakan sistem COOKIE selama
3 bulan, 9 bulan atau bahkan tahunan. COOKIE dalam bisnis afiliasi ini digunakan untuk
menyimpan nomor ID dari referalnya. Bila
terdapat konsumen yang membeli produk d bawah ID referal
seseorang selama
usia COOKIE
ini
masih
aktif, maka orang yang memiliki ID referal tadi akan mendapatkan komisi.
Membaca Value Cookie
Setelah COOKIE tersimpan, selanjutnya kita bisa
membaca valuenya. Untuk membaca value COOKIE, caranya adalah menggunakan perintah
$_COOKIE['nama cookie']; Contoh:
<?php
if isset($_COOKIE['mycookie'])
{
echo $_COOKIE['mycookie'];
}
else echo "Cookie Tidak Ada";
?>
Script di atas digunakan untuk menampilkan value
dari COOKIE bernama ‘mycookie’ bila
COOKIE tersebut ada (masih tersimpan dalam komputer), sedangkan bila sudah tidak
ada
maka tampilkan ‘Cookie Tidak Ada’.
Nah… mungkin Anda berpikir, bagaimana bila terdapat nama COOKIE yang sama lebih
dari satu
yang
tersimpan
dalam komputer?
Bila
nama
COOKIE
yang
sama tersebu
berasal
dari situs yang
sama,
maka
sifat timpa
menimpa
value
seperti
halnya dalam variabel akan terjadi.
Contoh:
script1.php
<?php
$kata = "COOKIE 1";
setcookie("mycookie", $kata, time()+3600);
?>
script2.php
<?php
$kata = "COOKIE 2";
setcookie("mycookie", $kata, time()+3600);
?>
Kedua script
di atas
akan melakukan proses
penyimpanan COOKIE sebanyak
2
kali dengan value yang berbeda namun nama COOKIE nya sama. Jika Anda jalankan script di atas dalam LOCALHOST (sebagai nama situsnya), maka value COOKIE pertama akan ditimpa dengan COOKIE yang kedua.
Namun… misalkan Anda punya dua
situs atau server yang berbeda katakanlah A dan B, kemudian script1.php Anda
upload ke
A sedangkan script2.php diupload ke B Selanjutnya script1.php di A dijalankan dan script2.php di B
juga dijalankan. Bila
diperhatikan, maka
proses
ini
akan
menghasilkan
2 buah COOKIE yang berbeda meskipun nama COOKIE nya sama. Di sini
yang membedakan adalah nama server atau
situsnya.
Berikut adalah contoh program terapan cookie
agar kita lebih memahami tentang cookie.
1. Menyimpan
username dalam cookie
Program
//link.php
Haloo...
Selamat Datang <a href= "form.php"> klik disini </a>
//form.php
<form
method="post" action="tampilan.php">
Nama <input type="text"
name="nama"><br>
<input type= "submit" name=
"submit" value="submit">
<input type= "reset" name=
"reset" value="reset"> <br>
</form>
//tampilan.php
<?php
$nama
=$_POST["nama"];
setcookie("user",
$nama, time()+50);
$username=$_COOKIE['user'];
$tgl=
date("d/m/Y");
if
($nama==$username)
{
echo "anda telah mengunjungi blog ini
pada $tgl";
}
else{
echo "selamat datang $nama ini
kunjungan pertama anda";
}
?>
Hasil
//login
pertama
//login
berikutnya
2. Login
menggunakan cookie
Program
//header.php
<html>
<head>
<title>Layout</title>
</head>
<body>
<table width=100% border=1
style="border-collapse:collapse">
<tr>
<td
colspan=2><center> <p> <b>TITLE</b> </p>
<br> </center></td>
</tr>
//header1.php
<?php
$un =
$_COOKIE['user']
?>
<head>
<title>Layout</title>
</head>
<body>
<table width=100% border=1
style="border-collapse:collapse">
<tr>
<td align="right"
colspan=2>
<center> <p>
<b>TITLE</b> </p> <br> </center>
<?php
echo "Username
: ".$un;
?>
</td>
</tr>
//form.php
<?php
include "header.php";
?>
<tr>
<td><center><b>Silahkan
Login</b></center></br>
<center>
<form method="post"
action="login.php">
Username <input
type="text" name="un"><br />
Password <input
type="password" name="pass"><br />
<input type="submit"
name="submit" value="Submit" />
</form>
</center>
</td>
</tr>
<?php
include "footer.php";
?>
//login.php
<?php
setcookie("user",
$_POST['un'], time()+60);
setcookie("sandi",
$_POST['pass'], time()+60);
$un = $_COOKIE['user'];
$pass = $_COOKIE['sandi'];
array (
Username , Password,
A ,
password1,
B ,
password2,
C ,
password3,
D ,
password4,
E ,
password5 );
switch($un)
{
case $un ==
' ' && $pass == ' ' :
echo "<b>Anda
belum memasukkan Username dan Password</b>";
include
"form.php";
break;
case $un ==
'A' && $pass != 'password1' ;
case $un ==
'B' && $pass != 'password2' ;
case $un ==
'C' && $pass != 'password3' ;
case $un ==
'D' && $pass != 'password4' ;
case $un ==
'E' && $pass != 'password5' ;
echo "<b>Password
yang anda masukan salah</b>";
include
"form.php";
break;
case $un ==
'A' && $pass == 'password1' ;
case $un ==
'B' && $pass == 'password2' ;
case $un ==
'C' && $pass == 'password3' ;
case $un ==
'D' && $pass == 'password4' ;
case $un ==
'E' && $pass == 'password5' ;
include
"loginberhasil.php";
break;
default :
echo "<b>
Username tidak terdaftar </b>";
include
"form.php";
break;
}
?>
//loginberhasil.php
<?php
include "header1.php";
?>
<tr>
<td>
<center><b>Anda
Telah Berhasil Login</b></center></br>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
</center></br>
<center>
<a href=logout.php>
Logout</a>
</center>
</td>
</tr>
<?php
include "footer.php";
?>
//link1
<?php
include "header1.php";
?>
<tr>
<td>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
<a href=logout.php>
Logout </a>
</center></br>
<center><b>Ini adalah isi dari
halaman Link 1</b></center></br>
</td>
</tr>
<?php
include "footer.php";
?>
//link2.php
<?php
include "header1.php";
?>
<tr>
<td>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
<a href=logout.php>
Logout </a>
</center></br>
<center><b>Ini
adalah isi dari halaman Link 2</b></center></br>
</td>
</tr>
<?php
include "footer.php";
?>
//link3.php
<?php
include "header1.php";
?>
<tr>
<td>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
<a href=logout.php>
Logout </a>
</center></br>
<center><b>Ini
adalah isi dari halaman Link 3</b></center></br>
</td>
</tr>
<?php
include "footer.php";
?>
//logout.php
<?php
include "form.php";
?>
Hasil
//form
//Loginberhasil
//cookie
//link1
//logout
Tidak ada komentar:
Posting Komentar