Cara menggunakan cookies in php


A cookie is often used to identify a user. A cookie is a small file that the server embeds on the user's computer. Each time the same computer requests a page with a browser, it will send the cookie too. With PHP, you can both create and retrieve cookie values.


Create Cookies With PHP

A cookie is created with the setcookie() function.

Syntax

setcookie(name, value, expire, path, domain, secure, httponly);

Only the name parameter is required. All other parameters are optional.


The following example creates a cookie named "user" with the value "John Doe". The cookie will expire after 30 days (86400 * 30). The "/" means that the cookie is available in entire website (otherwise, select the directory you prefer).

We then retrieve the value of the cookie "user" (using the global variable $_COOKIE). We also use the isset() function to find out if the cookie is set:

Example

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
  echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
  echo "Cookie '" . $cookie_name . "' is set!<br>";
  echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

Run example »

Note: The setcookie() function must appear BEFORE the <html> tag.

Note: The value of the cookie is automatically URLencoded when sending the cookie, and automatically decoded when received (to prevent URLencoding, use setrawcookie() instead).



To modify a cookie, just set (again) the cookie using the setcookie() function:

Example

<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
  echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
  echo "Cookie '" . $cookie_name . "' is set!<br>";
  echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

Run example »


To delete a cookie, use the setcookie() function with an expiration date in the past:

Example

<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' is deleted.";
?>

</body>
</html>

Run example »


Check if Cookies are Enabled

The following example creates a small script that checks whether cookies are enabled. First, try to create a test cookie with the setcookie() function, then count the $_COOKIE array variable:

Example

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
  echo "Cookies are enabled.";
} else {
  echo "Cookies are disabled.";
}
?>

</body>
</html>

Run example »


Complete PHP Network Reference

For a complete reference of Network functions, go to our complete PHP Network Reference.


PHP Exercises



Untuk mengakses cookies pada PHP, digunakan variabel superglobal $_COOKIE. Berbeda dengan session, cookie disimpan di sisi klien (client side), dan dapat dibaca dan diubah-ubah oleh user (yang mengerti javascript).

Untuk menyimpan cookie pada PHP, gunakan perintah setcookie()

setcookie("nama_cookie", "isi_cookie", $intKapanExpire);

nama_cookie dan isi_cookie harus berupa string. Cookie tidak dapat menerima value (isi) berupa array ataupun object.

$intKapanExpire adalah angka timestamp yang melambangkan waktu saat cookie tersebut akan expired. Misalkan bila membuat suatu cookie yang berlaku selama dua hari:

setcookie("kode_login", "abc123def456", time() + 3600 * 24 * 2);

Di mana 3600 adalah jumlah detik dalam satu jam.

Jika perlu menyimpan array atau object, dapat menggunakan json_encode dan json_decode.

class CartItem{
  public $item_id, $qty;
  public function __construct($arrKeyVal) {
    foreach ($arrKeyVal as $k=>$v) $this->$k = $v;
  }
}
$cart = [];
$cart[] = new CartItem(["item_id"=>1, "qty"=>23]);
$cart[] = new CartItem(["item_id"=>2, "qty"=>37]);
setcookie("cart", json_encode($cart), time()+24*3600*5);

Untuk mengakses cookie, pakai perintah

$suatuVar = $_COOKIE['nama_cookie'];

Bila cookie disimpan dalam bentuk json, ambil dengan cara:

class CartItem{
  public $item_id, $qty;
  public function __construct($arrKeyVal) {
    foreach ($arrKeyVal as $k=>$v) $this->$k = $v;
  }
}
$cart = json_decode($_COOKIE["cart"]);
if ($cart != null) {
  foreach ($cart as $k=>$v) $cart[$k] = new CartItem ($v);
}
print_r($cart);

Dan untuk menghapus cookie, gunakan:

setcookie("nama_cookie", "nilai kosong juga oke", time()-1);

time()-1 adalah satu detik sebelum sekarang, sehingga cookienya akan langsung expired. Tidak harus -1, Anda bisa menggunakan -2, -10, -2000 dan sebagainya. Tetapi jangan memasukkan 0 ke dalam masa berlaku cookie, karena hasilnya pada browser Internet Explorer akan sulit ditebak.

Jangan pernah menyimpan password di dalam cookie, karena cookie dapat dengan mudah diakses melalui javascript.

Cookie juga dapat diubah dengan mudah melalui javascript. Misalkan Anda menyimpan userid di cookie dan bergantung dengan userid di cookie tersebut untuk login, maka sistem Anda akan dapat dengan mudah dibobol.

Untuk melihat isi cookie, masuk ke console browser (pada umumnya shortcutnya F12). Kemudian ketikkan document.cookie. Untuk mengubah nilai cookie lewat javascript, bisa dengan perintah misalnya: document.cookie += "; userid=1";

Anda mungkin tertarik untuk membaca membuat login remember me dengan PHP.


Untuk membuat cookie di php, anda perlu menggunakan fungsi setcookie(), fungsi ini memiliki 6 argumen antara lain :.
Nama Cookie : berisi nama dari cookie..
Nilai Cookie : berisi nilai yang akan disimpan, sesuai nama cookie yang sudah ditulis di argumen pertama..
Cara kerja cookies adalah saat kamu mengunjungi sebuah web, cookies akan disimpan di direktori file browser. Ketika kamu kembali mengunjungi situs tersebut, browser kamu akan membaca cookies dan menyampaikan informasi itu kembali ke situs web atau elemen yang pada awalnya mengatur cookie.

Apa itu Cookies dalam PHP?

Cookies dan Session memiliki fungsi yang sama yaitu menyimpan informasi pengguna (user). Keduanya memilki fungsi sama tetapi beda caraya, dimana Session merupakan cara untuk menyimpan informasi (dalam variabel) untuk digunakan di beberapa halaman.

Apa perbedaan mendasar dari session dan cookies?

Perbedaan kedua antara cookie dan server adalah dalam durasi penyimpanannya. Pada cookie, durasi penyimpanan cookie dapat di setting pada script PHP. Sedangkan dalam session, berbeda dengan cookie, setiap data yang disimpan akan dihapus pada saat browser dimatikan.