Dalam tutorial ini Anda akan belajar cara menyimpan sejumlah kecil informasi di dalam browser pengguna itu sendiri menggunakan cookie PHP
Apa itu Cookie
Cookie adalah file teks kecil yang memungkinkan Anda menyimpan sejumlah kecil data (hampir 4KB) di komputer pengguna. Mereka biasanya digunakan untuk melacak informasi seperti nama pengguna yang dapat diambil situs untuk mempersonalisasi halaman saat pengguna mengunjungi situs web di lain waktu.
Tip. Setiap kali browser meminta halaman ke server, semua data dalam cookie secara otomatis dikirim ke server dalam permintaan tersebut
Mengatur Cookie di PHP
Fungsi setcookie() digunakan untuk mengatur cookie di PHP. Pastikan Anda memanggil fungsi setcookie()_ sebelum output apa pun dihasilkan oleh skrip Anda, jika tidak, cookie tidak akan disetel. Sintaks dasar dari fungsi ini dapat diberikan dengan
setcookie(nama, nilai, kedaluwarsa, jalur, domain, aman);
Parameter fungsi setcookie()_ memiliki arti sebagai berikut
ParameterDeskripsinameNama cookie. valueNilai cookie. Jangan simpan informasi sensitif karena nilai ini disimpan di komputer pengguna. expiresTanggal kedaluwarsa dalam format stempel waktu UNIX. Setelah waktu ini cookie tidak dapat diakses. Nilai default adalah 0. 0Tentukan jalur di server tempat cookie akan tersedia. Jika disetel ke _1, cookie akan tersedia di seluruh domain. 2Tentukan domain tempat cookie tersedia untuk e. g www. contoh. com. 3Kolom ini, jika ada, menunjukkan bahwa cookie harus dikirim hanya jika terdapat koneksi HTTPS yang aman
Tip. Jika waktu kedaluwarsa cookie disetel ke 0, atau dihilangkan, cookie akan kedaluwarsa pada akhir sesi i. e. saat browser ditutup
Berikut adalah contoh yang menggunakan fungsi setcookie()_ untuk membuat cookie bernama 5 dan menetapkan nilai nilai 6 ke dalamnya. Ini juga menentukan bahwa cookie akan kedaluwarsa setelah 30 hari (7)
Catatan. Semua argumen kecuali nama bersifat opsional. Anda juga dapat mengganti argumen dengan string kosong ("") untuk melewati argumen itu, namun untuk melewati argumen kedaluwarsa, gunakan nol (0), karena ini adalah bilangan bulat
Peringatan. Jangan simpan data sensitif dalam cookie karena berpotensi dimanipulasi oleh pengguna jahat. Untuk menyimpan data sensitif dengan aman, gunakan sesi sebagai gantinya
Mengakses Nilai Cookie
Variabel superglobal PHP 8 digunakan untuk mengambil nilai cookie. Ini biasanya array asosiatif yang berisi daftar semua nilai cookie yang dikirim oleh browser dalam permintaan saat ini, dikunci dengan nama cookie. Nilai cookie individu dapat diakses menggunakan notasi array standar, misalnya untuk menampilkan cookie nama pengguna yang diatur pada contoh sebelumnya, Anda dapat menggunakan kode berikut
Kode PHP pada contoh di atas menghasilkan keluaran berikut
Merupakan praktik yang baik untuk memeriksa apakah cookie disetel atau tidak sebelum mengakses nilainya. Untuk melakukan ini, Anda dapat menggunakan fungsi PHP ________0______9, seperti ini
Anda dapat menggunakan fungsi 0 seperti 1 untuk melihat struktur array asosiatif 8 ini, seperti Anda dengan array lain
Menghapus Cookie
Anda dapat menghapus cookie dengan memanggil fungsi setcookie() yang sama dengan nama cookie dan nilai apa pun (seperti string kosong), namun kali ini Anda perlu menyetel tanggal kedaluwarsa di masa lalu, seperti yang ditunjukkan pada contoh di bawah ini
Tip. Anda harus melewati jalur, domain, dan argumen lain yang persis sama dengan yang Anda gunakan saat pertama kali membuat cookie untuk memastikan bahwa cookie yang benar telah dihapus
Cookie adalah file kecil dengan ukuran maksimum 4KB yang disimpan server web di komputer klien
Setelah cookie ditetapkan, semua permintaan halaman yang mengikuti mengembalikan nama dan nilai cookie
Cookie hanya dapat dibaca dari domain asalnya. Misalnya, set cookie menggunakan domain www. guru99. com tidak bisa dibaca dari domain career. guru99. com
Sebagian besar situs web di internet menampilkan elemen dari domain lain seperti periklanan. Domain yang menyajikan elemen ini juga dapat menyetel cookie mereka sendiri. Ini dikenal sebagai cookie pihak ketiga
Cookie yang dibuat oleh pengguna hanya dapat dilihat oleh mereka. Pengguna lain tidak dapat melihat nilainya
Sebagian besar browser web memiliki opsi untuk menonaktifkan cookie, cookie pihak ketiga, atau keduanya
Jika demikian, maka PHP merespons dengan meneruskan token cookie di URL
Diagram yang ditunjukkan di bawah mengilustrasikan cara kerja cookie
Di Sini,
1) Pengguna meminta halaman yang menyimpan cookie
2) Server menyetel cookie di komputer pengguna
3) Permintaan halaman lain dari pengguna akan mengembalikan nama dan nilai cookie
Dalam tutorial ini, Anda akan belajar-
Mengapa dan kapan menggunakan Cookie?
- Http adalah protokol tanpa kewarganegaraan; . Jalur penyimpanan cookie bergantung pada browser. Internet Explorer biasanya menyimpannya di folder Temporary Internet Files
- Personalisasi pengalaman pengguna – ini dicapai dengan memungkinkan pengguna memilih preferensi mereka. Halaman yang diminta untuk mengikuti dipersonalisasi berdasarkan preferensi yang ditetapkan dalam cookie
- Melacak halaman yang dikunjungi oleh pengguna
Membuat Cookie
Sekarang mari kita lihat sintaks dasar yang digunakan untuk membuat cookie
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>DI SINI,
- Php“setcookie” adalah fungsi PHP yang digunakan untuk membuat cookie
- “cookie_name” adalah nama cookie yang akan digunakan server saat mengambil nilainya dari variabel array $_COOKIE. Itu wajib
- “cookie_value” adalah nilai cookie dan bersifat wajib
- “[expiry_time]” bersifat opsional; . Waktu diatur menggunakan fungsi PHP time() plus atau minus beberapa detik lebih besar dari 0 i. e. waktu() + 3600 selama 1 jam
- “[cookie_path]” bersifat opsional; . Garis miring “/” berarti cookie akan tersedia di seluruh domain. Sub direktori membatasi akses cookie ke subdomain
- “[domain]” bersifat opsional, dapat digunakan untuk menentukan hierarki akses cookie i. e. <?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>0 berarti seluruh domain sementara <?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>1 membatasi akses cookie ke <?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>1 dan sub domainnya. Perhatikan itu mungkin untuk memiliki subdomain dari subdomain asalkan total karakter tidak melebihi 253 karakter
- “[aman]” adalah opsional, standarnya salah. Ini digunakan untuk menentukan apakah cookie dikirim melalui https jika disetel ke true atau http jika disetel ke false
- “[Httponly]” adalah opsional. Jika disetel ke true, maka hanya bahasa skrip sisi klien i. e. JavaScript tidak dapat mengaksesnya
Catatan. fungsi cookie set php harus dijalankan sebelum tag pembuka HTML
Sekarang mari kita lihat contoh yang menggunakan cookie
Kami akan membuat program dasar yang memungkinkan kami menyimpan nama pengguna dalam cookie yang kedaluwarsa setelah sepuluh detik
Kode di bawah ini menunjukkan implementasi dari contoh di atas “cookies. php”
<?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>Keluaran
the cookie has been set for 60 secondsMengambil nilai Cookie
Buat file lain bernama “cookies_read. php” dengan kode berikut
Keluaran
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )Catatan. $_COOKIE adalah variabel super global bawaan PHP
Ini berisi nama dan nilai dari semua cookie yang ditetapkan
Jumlah nilai yang
Array $_COOKIE dapat berisi tergantung pada ukuran memori yang diatur dalam php. ini
Nilai default adalah 1GB
Menguji aplikasi kami
Anggaplah Anda telah menyimpan file PHP Anda di folder phptus
- Langkah 1 – buka browser web Anda dan masukkan URL http. //localhost/phptuts/cookies_read. php
Catatan. Hanya array kosong yang ditampilkan
- Langkah 2 – Browser ke URL http. //localhost/phptuts/cookies. php
- Langkah 3 – Beralih kembali ke tab pertama lalu klik tombol segarkan
Tunggu sebentar lalu klik tombol segarkan lagi. Hasil apa yang Anda dapatkan?
Hapus Cookie
- Jika Anda ingin menghancurkan cookie sebelum waktu kedaluwarsanya, maka Anda mengatur waktu kedaluwarsa ke waktu yang telah berlalu.
- Buat field baru bernama penghancuran cookie. php dengan kode berikut
- Ulangi langkah 1 hingga 3 dari bagian di atas untuk mengambil nilai cookie
- Buka URL http. //localhost/phptuts/cookie_destroy. php
- Beralih ke URL http. //localhost/phptuts/cookies_read. php hasil apa yang ditampilkan?
Apa itu Sesi?
- Sesi adalah variabel global yang disimpan di server
- Setiap sesi diberi id unik yang digunakan untuk mengambil nilai yang disimpan
- Setiap kali sesi dibuat, cookie yang berisi id sesi unik disimpan di komputer pengguna dan dikembalikan dengan setiap permintaan ke server. Jika browser klien tidak mendukung cookie, id sesi php unik ditampilkan di URL
- Sesi memiliki kapasitas untuk menyimpan data yang relatif besar dibandingkan dengan cookie
- Nilai sesi secara otomatis dihapus saat browser ditutup. Jika Anda ingin menyimpan nilai secara permanen, maka Anda harus menyimpannya di database
- Sama seperti variabel array $_COOKIE, variabel sesi disimpan dalam variabel array $_SESSION. Sama seperti cookie, sesi harus dimulai sebelum tag HTML apa pun
Mengapa dan kapan menggunakan Sesi?
- Anda ingin menyimpan informasi penting seperti id pengguna dengan lebih aman di server tempat pengguna jahat tidak dapat marah dengan mereka
- Anda ingin meneruskan nilai dari satu halaman ke halaman lainnya
- Anda menginginkan alternatif cookie pada browser yang tidak mendukung cookie
- Anda ingin menyimpan variabel global dengan cara yang efisien dan lebih aman dibandingkan dengan meneruskannya di URL
- Anda sedang mengembangkan aplikasi seperti keranjang belanja yang harus menyimpan informasi sementara dengan kapasitas lebih besar dari 4KB
Membuat Sesi
Untuk membuat sesi, pertama-tama Anda harus memanggil fungsi session_start PHP dan kemudian menyimpan nilai Anda dalam variabel array $_SESSION
Misalkan kita ingin mengetahui berapa kali halaman telah dimuat, kita dapat menggunakan sesi untuk melakukannya