Cookie
Pada Bab 13, Anda 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 Mail 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" ‘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 mendengar 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 di 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 tersebut 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.
Tugas Untuk Anda
1. Buatlah sebuah halaman web berisi sebarang konten yang bisa menginformasikan nama pengunjungnya, kapan kunjungan terakhir.
Bila seseorang baru pertama kali mengunjungi halaman web tersebut, maka akan muncul form untuk memasukkan nama pengunjung. Berikut ini contoh gambarannya:
Misalkan ada seorang seseorang bernama AGUS sedang membuka halaman web tersebut untuk pertama kalinya pada tanggal 20/4/2009 melalui laptop pribadinya dan mengisi namanya pada form nama pengunjung yang disediakan.
Selanjutnya bila si AGUS tadi membuka kembali halaman web tersebut pada tanggal 29/4/2009 dengan laptop yang sama, maka form untuk memasukkan nama pengunjung tidak akan muncul melainkan muncul keterangan: “Terima kasih AGUS atas kunjungannya kembali ke halaman ini. Anda terakhir mengunjungi halaman ini pada tanggal 20/4/2009”.
Gunakan COOKIE untuk menyelesaikan kasus di atas!
. 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
2. Buatlah sistem login dan autentifikasi halaman web seperti halnya tugas di Bab 13. Namun untuk tugas kali ini silakan dibuat dengan menggunakan COOKIE.
Tidak ada komentar:
Posting Komentar