Tuesday, April 25, 2017

Pengertian Cookies dalam PHP

Cookie adalah file teks yang tersimpan di komputer klien dan disimpan menggunakan tujuan pelacakan. PHP secara transparan mendukung cookie HTTP

Ada tiga langkah untuk mengidentifikasi Returning User:
Skrip server mengirimkan satu set cookies ke browser. Misalnya nama, usia, atau nomor identifikasi dll.
Browser menyimpan informasi ini di komputer lokal untuk penggunaan selanjutnya.
Ketika browser berikutnya mengirimkan permintaan ke server web, maka ia mengirimkan informasi cookie tersebut ke server dan server menggunakan informasi tersebut untuk mengidentifikasi pengguna.

Baca Juga: Tutorial PHP Dasar Lengkap

Anatomi Cookie

Cookie biasanya diatur dalam header HTTP (walaupun JavaScript juga bisa mengatur cookie secara langsung pada browser). Skrip PHP yang menetapkan cookie mungkin mengirim header yang terlihat seperti ini
HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=sistem-informasi.xyz
Connection: close
Content-Type: text/html

Seperti yang dapat Anda lihat, header Set-Cookie berisi pasangan nilai nama, tanggal GMT, path dan domain.  Nama dan nilai URL akan di encoded, browser dikonfigurasi untuk menyimpan cookies, maka browser akan menyimpan informasi ini sampai tanggal kadaluwarsa.

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

Setting Cookies di PHP

PHP menyediakan fungsi setcookie () untuk mengatur cookie. Fungsi ini membutuhkan hingga enam argumen dan harus disebut sebelum tag <html>. Untuk setiap cookie fungsi ini harus dipanggil secara terpisah.
setcookie(name, value, expire, path, domain, security);
Berikut detail dari semua argumennya:
  • Name - Untuk menetapkan nama cookie dan disimpan dalam variabel lingkungan yang disebut HTTP_COOKIE_VARS. Variabel ini digunakan saat mengakses cookies.
  • Value - Untuk menetapkan nilai variabel bernama dan merupakan konten yang sebenarnya ingin Anda simpan.
  • Expiry - Untuk menentukan waktu masa depan dalam hitungan detik sejak pukul 00:00:00 GMT pada tanggal 1 Januari 1970. Setelah melewati tanggal tersebut, cookies tidak dapat di akses lagi.
  • Path - untuk menentukan direktori dimana cookie tersebut valid
  • Domain - dapat digunakan untuk menentukan nama domain dalam domain yang sangat besar dan harus mengandung setidaknya dua periode untuk berlaku
  • Security - untuk diatur ke 1 untuk menentukan bahwa cookie hanya boleh dikirim melalui transmisi aman menggunakan HTTPS jika tidak diset ke 0 yang berarti cookie dapat dikirim melalui HTTP biasa.

Berikut adalah contoh membuat cookie nama dan umur cookies cookies ini akan kadaluarsa setelah satu jam.

<?php
   setcookie("name", "John Watkin", time()+3600, "/","", 0);
   setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
   
   <head>
      <title>Setting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Set Cookies"?>
   </body>
   
</html> 

Cara Akses Cookies di PHP

PHP menyediakan banyak cara untuk mengakses cookies. Cara termudah adalah menggunakan variabel $ _COOKIE atau $ HTTP_COOKIE_VARS. Contoh berikut akan mengakses semua cookie yang ada di contoh di atas.:
<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php
         echo $_COOKIE["name"]. "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["name"]. "<br />";
         
         echo $_COOKIE["age"] . "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["age"] . "<br />";
      ?>
      
   </body>
</html>

Anda juga bisa mengkases melalui function isset() :

<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php
         if( isset($_COOKIE["name"]))
            echo "Welcome " . $_COOKIE["name"] . "<br />";
         
         else
            echo "Sorry... Not recognized" . "<br />";
      ?>
      
   </body>
</html>


Delete Cookies di PHP

Secara resmi, untuk menghapus cookie Anda harus memanggil setcookie () dengan argumen nama saja tapi ini tidak selalu berjalan dengan baik, namun, dan tidak boleh diandalkan.

Paling aman mengatur cookie dengan tanggal yang telah kedaluwarsa

<?php
   setcookie( "name", "", time()- 60, "/","", 0);
   setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
   
   <head>
      <title>Deleting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Deleted Cookies" ?>
   </body>
   
</html>

Referensi: TutorialPoints.com


EmoticonEmoticon