Cookie PHP adalah sepotong kecil informasi yang disimpan di browser klien. Ini digunakan untuk mengenali pengguna
Cookie dibuat di sisi server dan disimpan ke browser klien. Setiap kali klien mengirim permintaan ke server, cookie disematkan dengan permintaan. Dengan demikian, cookie dapat diterima di sisi server
Singkatnya, cookie dapat dibuat, dikirim dan diterima di ujung server
Catatan. Cookie PHP harus digunakan sebelum tag
fungsi PHP setcookie()
Fungsi PHP setcookie() digunakan untuk mengatur cookie dengan respons HTTP. Setelah cookie disetel, Anda dapat mengaksesnya dengan variabel superglobal $_COOKIE
Ringkasan. dalam tutorial ini, Anda akan belajar tentang cookie dan cara menggunakan fungsi PHP
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 untuk mengelola cookie secara efektifPengantar cookie
Web bekerja berdasarkan protokol HTTP. Protokol HTTP tidak memiliki kewarganegaraan
Ketika browser web meminta halaman dari server web, server web merespons dengan konten halaman. Kemudian, browser web yang sama meminta halaman yang sama lagi, dan server web tidak memiliki informasi bahwa permintaan tersebut berasal dari browser web yang sama
Cookie memecahkan tantangan tanpa kewarganegaraan ini
Cookie adalah sepotong data yang dikirim oleh server web ke browser web. Browser web dapat menyimpannya dan mengirimkannya kembali dalam permintaan berikutnya ke server web yang sama. Server web mengetahui bahwa dua permintaan berasal dari browser web yang sama dengan menggunakan cookie yang sama
Cookie juga dikenal sebagai cookie web, cookie HTTP, atau cookie browser. Kami akan menggunakan cookie untuk mempersingkatnya
Bagan alur berikut mengilustrasikan cara kerja cookie
Bagaimana itu bekerja
- Pertama, browser web mengirimkan permintaan ke server web. Server web tidak memiliki informasi apa pun tentang browser web. Server web membuat cookie dengan pengembalian nama dan nilai 1 dan melampirkan cookie ke header respons HTTP. Untuk membuat cookie, Anda akan menggunakan fungsi
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 - Kedua, browser web menyimpan cookie
- Ketiga, browser web mengirimkan permintaan kedua dengan cookie yang tersimpan di header permintaan HTTP ke server web. Di server web, PHP dapat mengakses cookie melalui variabel superglobal
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)5 dan melakukan sesuatu yang sesuai - Terakhir, server web merespons dengan konten permintaan. Biasanya, ini merespons browser web dengan konten berdasarkan nilai cookie
Peramban web dapat menyimpan cookie dengan ukuran maksimal 4KB. Namun, ini berbeda di antara browser web
Cookie memiliki tanggal kedaluwarsa. Biasanya, browser web menyimpan cookie untuk durasi tertentu. Dan server web dapat menentukan waktu kedaluwarsa untuk cookie
Cookie juga menyimpan alamat web (URL) yang menunjukkan URL yang membuat cookie. Dan browser web dapat mengirimkan kembali cookie yang awalnya disetel oleh alamat web yang sama. Dengan kata lain, situs web tidak akan dapat membaca cookie yang ditetapkan oleh situs web lain
Sebagian besar browser web modern memungkinkan pengguna memilih untuk menerima cookie. Oleh karena itu, Anda sebaiknya tidak sepenuhnya mengandalkan cookie untuk menyimpan data penting
Mengapa menggunakan cookie
Secara umum, situs web menggunakan cookie untuk meningkatkan pengalaman pengguna. Misalnya, Anda harus masuk ke situs web lagi setelah Anda meninggalkannya tanpa cookie
Biasanya, Anda akan menggunakan cookie untuk tujuan berikut
- Manajemen sesi. cookie memungkinkan situs web untuk mengingat pengguna dan informasi login mereka atau hal lain yang harus diingat oleh server web
- Personalisasi. cookie dapat menyimpan preferensi pengguna, tema, dan pengaturan lainnya
- Pelacakan. cookie menyimpan perilaku pengguna. Misalnya, di situs web E-niaga, Anda dapat menggunakan cookie untuk merekam produk yang dilihat pengguna sebelumnya. Nantinya, Anda dapat menggunakan informasi ini untuk merekomendasikan produk terkait yang mungkin diminati pengguna
Mengatur cookie di PHP
PHP memudahkan penggunaan cookie menggunakan fungsi
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 memungkinkan Anda mengirim header HTTP untuk membuat cookie di browser web<?php setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false ): bool
Code language: HTML, XML (xml)Tabel berikut mengilustrasikan argumen dari fungsi
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3Argumen Arti$nama Nama cookie$nilai Nilai cookie. Itu bisa berupa nilai skalar seperti string atau integer. $expiresWaktu (dalam stempel waktu UNIX) cookie kedaluwarsa. Jikasetcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)_9 tidak disetel atau disetel ke 0, cookie akan kedaluwarsa saat browser web ditutup. $path Jalur di server web tempat cookie akan tersedia. Misalnya, jika jalurnya adalah '/', cookie akan tersedia di dalam domain. $domainDomain tempat cookie akan tersedia. $securejika $secure disetel ke$_COOKIE['cookie_name']
Code language: PHP (php)0 , cookie harus dikirim melalui koneksi HTTP (HTTPS) aman dari browser web. $httponlyif$_COOKIE['cookie_name']
Code language: PHP (php)_1 benar, cookie hanya dapat diakses melalui protokol HTTP, bukan JavaScriptMulai dari PHP7. 3. 0, Anda dapat menggunakan fungsi
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 yang sama dengan tanda tangan alternatifsetcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)Argumen
$_COOKIE['cookie_name']
Code language: PHP (php)3 adalah larik yang memiliki satu atau beberapa kunci, seperti$_COOKIE['cookie_name']
Code language: PHP (php)4,$_COOKIE['cookie_name']
Code language: PHP (php)5,$_COOKIE['cookie_name']
Code language: PHP (php)6,$_COOKIE['cookie_name']
Code language: PHP (php)7,$_COOKIE['cookie_name']
Code language: PHP (php)8 dan$_COOKIE['cookie_name']
Code language: PHP (php)9.$_COOKIE['cookie_name']
Code language: PHP (php)9 dapat bernilai<?php if(isset($_COOKIE['cookie_name'])) { }
Code language: HTML, XML (xml)1,<?php if(isset($_COOKIE['cookie_name'])) { }
Code language: HTML, XML (xml)2, atau<?php if(isset($_COOKIE['cookie_name'])) { }
Code language: HTML, XML (xml)3. Jika Anda menggunakan tombol lain, fungsisetcookie ( string $name , string $value = "" , array $options = [] ) : bool
Fungsi
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 mengembalikan$_COOKIE['cookie_name']
Code language: PHP (php)0 jika berhasil dijalankan. Perhatikan bahwa itu tidak menunjukkan apakah browser web menerima cookie atau tidak. Fungsisetcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 mengembalikan<?php if(isset($_COOKIE['cookie_name'])) { }
Code language: HTML, XML (xml)8 jika gagal$_COOKIE
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)5 array asosiatif yang menyimpan cookie HTTP. Untuk mengakses cookie dengan nama, Anda menggunakan sintaks berikut$_COOKIE['cookie_name']
Code language: PHP (php)_Jika nama cookie mengandung titik (
<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)0) dan spasi (<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)1), Anda harus menggantinya dengan garis bawah (<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)2)Untuk memeriksa apakah cookie disetel, Anda menggunakan fungsi
<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)3<?php if(isset($_COOKIE['cookie_name'])) { }
Code language: HTML, XML (xml)setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)5 adalah variabel superglobal, sehingga dapat diakses dari mana saja dalam skripMembaca kue
Sebelum membaca nilai cookie, Anda harus selalu memeriksa apakah sudah disetel dengan menggunakan fungsi
<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)3<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)Untuk memeriksa apakah cookie sama dengan nilai, Anda menggunakan kode berikut
<?php if (isset($_COOKIE['cookie_name']) && $_COOKIE['cookie_name'] == 'value') { // ... }
Menghapus cookie
Jika Anda tidak menggunakan cookie, Anda dapat memaksa browser untuk menghapusnya. PHP tidak menyediakan fungsi yang langsung menghapus cookie. Namun, Anda dapat menghapus cookie menggunakan fungsi
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)3 dengan menyetel tanggal kedaluwarsa ke masa laluKode berikut menghapus cookie dengan
<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)7 dalam permintaan halaman berikutnyaunset($_COOKIE['cookie_name']); setcookie('cookie_name', null, time()-3600);
Code language: PHP (php)Contoh kue PHP
Contoh berikut menunjukkan cara menggunakan cookie untuk menampilkan pesan salam kepada pengunjung baru atau yang kembali
<?php define('ONE_WEEK', 7 * 86400); $returning_visitor = false; if (!isset($_COOKIE['return'])) { setcookie('return', '1', time() + ONE_WEEK); } else { $returning_visitor = true; } echo $returning_visitor ? 'Welcome back!' : 'Welcome to my website!';
Code language: HTML, XML (xml)Bagaimana itu bekerja
Pertama, tentukan konstanta yang menyimpan satu minggu dalam detik
define('ONE_WEEK', 7 * 86400);
Code language: JavaScript (javascript)Kedua, setel return_visitor ke false
$returning_visitor = false;
Code language: PHP (php)Ketiga, centang cookie dengan nama return. Jika cookie tidak disetel, buat dengan nilai satu dan tanggal kedaluwarsa satu minggu. Jika tidak, atur variabel $returning_visitor ke true
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)0Terakhir, tampilkan pesan salam berdasarkan nilai variabel
<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)8Saat Anda meminta halaman untuk pertama kalinya, Anda akan melihat pesan berikut
setcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)_1Dan jika Anda membuka alat pengembang web, Anda akan melihat cookie seperti yang ditunjukkan pada gambar berikut
Karena browser web sudah menyimpan cookie dengan nama
<?php if (isset($_COOKIE['cookie_name'])) { // process the cookie value }
Code language: HTML, XML (xml)9 dan nilai<?php if (isset($_COOKIE['cookie_name']) && $_COOKIE['cookie_name'] == 'value') { // ... }
Code language: HTML, XML (xml)0, jika Anda me-refresh halaman, Anda akan melihat pesan yang berbedasetcookie ( string $name , string $value = "" , array $options = [] ) : bool
Code language: PHP (php)_2Cookie ini akan bertahan selama tujuh hari yang ditetapkan oleh server web. Tentu saja, dari browser web, Anda dapat menghapus cookie secara manual