Home » PHP » Fungsi setcookie() Network PHP

Fungsi setcookie() Network PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi setcookie() digunakan untuk mendefinisikan cookie yang akan dikirim bersama dengan header HTTP lainnya.

Cookie sering digunakan untuk mengidentifikasi pengguna. Cookie adalah file kecil yang disematkan pada server di komputer pengguna. Setiap kali komputer yang sama meminta halaman dengan browser, cookie juga akan dikirim. PHP dapat membuat dan mengambil nilai cookie.

Nama cookie secara otomatis ditetapkan ke variabel dengan nama yang sama. Misalnya, jika cookie dikirim dengan nama “user”, variabel secara otomatis dibuat bernama $user, yang berisi nilai cookie.

Catatan: Fungsi setcookie () harus muncul SEBELUM tag <html> .

Catatan: Nilai cookie secara otomatis dikodekan URL saat mengirim cookie dan secara otomatis didekodekan saat diterima (untuk mencegah pengodean URL, gunakan setrawcookie() sebagai gantinya).

Syntax

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

Nilai Parameter

ParameterDeskripsi
nameRequired. Menentukan nama cookie
valueOptional. Menentukan nilai cookie
expireOptional. Menentukan kapan cookie kedaluwarsa. Nilai: time () + 86400 * 30, akan menyetel cookie agar kedaluwarsa dalam 30 hari. Jika parameter ini dihilangkan atau disetel ke 0, cookie akan kedaluwarsa di akhir sesi (saat browser ditutup). Default-nya adalah 0
pathOptional. Menentukan jalur server cookie. Jika disetel ke “/”, cookie akan tersedia di seluruh domain. Jika disetel ke “/php/”, cookie hanya akan tersedia di dalam direktori php dan semua sub-direktori php. Nilai defaultnya adalah direktori saat ini tempat cookie sedang disetel
domainOptional. Menentukan nama domain cookie. Untuk membuat cookie tersedia di semua subdomain example.com, setel domain ke “example.com”. Menyetelnya ke www.example.com akan membuat cookie hanya tersedia di subdomain www
secureOptional.Menentukan apakah cookie hanya boleh dikirim melalui koneksi HTTPS yang aman atau tidak. TRUE akan menunjukkan bahwa cookie hanya akan disetel jika ada koneksi aman. Default-nya FALSE
httponlyOptional. Jika disetel ke TRUE, cookie hanya akan dapat diakses melalui protokol HTTP (cookie tidak akan dapat diakses oleh bahasa skrip). Pengaturan ini dapat membantu mengurangi pencurian identitas melalui serangan XSS. Default-nya FALSE

Detail Teknis

Return Value:TRUE jika sukses . FALSE jika gagal
PHP Version:4+
PHP Changelog:PHP 5.5 – Atribut Max-Age disertakan dalam header Set-Cookie yang dikirim ke klien
PHP 5.2 – Parameter httponly telah ditambahkan

Contoh 1
Contoh berikut membuat cookie bernama “user” dengan nilai “Tony Stark”. Cookie akan kedaluwarsa setelah 30 hari (86400 * 30). “/” Berarti cookie tersedia di seluruh situs web (jika tidak, pilih direktori yang diinginkan).

Kemudian ambil nilai cookie “user” (menggunakan variabel global $_COOKIE) dan gunakan fungsi isset () untuk mengetahui cookie yang disetel:

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

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie bernama '" . $cookie_name . "' tidak disetel!";
} else {
    echo "Cookie bernama'" . $cookie_name . "' disetel!<br>";
    echo "Nilainya: " . $_COOKIE[$cookie_name];
}
?>
  
<p><strong>Catatan:</strong> Memuat ulang halaman untuk melihat nilai cookie.</p>

</body>
</html>

<!-- Output : Cookie bernama 'user' tidak disetel!
Catatan: Memuat ulang halaman untuk melihat nilai cookie. --->

Contoh 2
Beberapa tanggal kedaluwarsa untuk cookie:

<?php
$value = "Hello world!";

// cookie akan kedaluwarsa saat browser ditutup
setcookie("myCookie", $value);

// Cookie akan kadaluarsa dalam 1 jam
setcookie("myCookie", $value, time() + 3600);

// cookie akan kedaluwarsa dalam 1 jam dan hanya akan tersedia
// di dalam direktori php + semua sub-direktori php
setcookie("myCookie", $value, time() + 3600, "/php/");
?>
<html>
<body>

...Tulis Kode PHPnya...

</body>
</html>

Contoh 3
Untuk memodifikasi cookie, cukup setel (lagi) cookie menggunakan fungsi setcookie():

<!DOCTYPE html>
<?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 bernama '" . $cookie_name . "' tidak disetel!";
} else {
    echo "Cookie bernama'" . $cookie_name . "' disetel!<br>";
    echo "Nilainya: " . $_COOKIE[$cookie_name];
}
?>
  
<p><strong>Catatan:</strong> Memuat ulang halaman untuk melihat nilai cookie.</p>

</body>
</html>

<!-- Output : Cookie bernama 'user' tidak disetel!
Catatan: Memuat ulang halaman untuk melihat nilai cookie. --->

Contoh 4
Untuk menghapus cookie, gunakan fungsi setcookie () dengan tanggal kedaluwarsa di masa lalu:

<?php
// setel tanggal kedaluwarsa menjadi satu jam yang lalu
setcookie("user", "", time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' dihapus.";
?>
  // Output : Cookie 'user' dihapus

Contoh 5
Buat skrip kecil yang memeriksa apakah cookie diaktifkan. Pertama, coba buat cookie percobaan dengan fungsi setcookie(), lalu hitung variabel array $_COOKIE:

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

<?php
if(count($_COOKIE) > 0) {
    echo "Cookies diaktifkan.";
} else {
    echo "Cookies dinonaktifkan.";
}
?>
  // Output : Cookies dinonaktifkan

You may also like