Minggu, 14 April 2019

COOKIE


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