Sesi PHP & Cookie PHP dengan Contoh
Apa itu kue?
Cookie adalah file kecil dengan ukuran maksimum 4KB yang disimpan server web di komputer klien.
Setelah cookie disetel, semua permintaan halaman berikutnya akan mengembalikan nama dan nilai cookie.
Cookie hanya dapat dibaca dari domain tempat cookie tersebut diterbitkan. Misalnya, kumpulan cookie menggunakan domain www.guru99.com tidak dapat dibaca dari domain karir.guru99.com.
Sebagian besar website di internet menampilkan elemen dari domain lain seperti iklan. Domain yang melayani 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 hal ini terjadi 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
Mengapa dan kapan menggunakan Cookies?
- Http adalah protokol tanpa kewarganegaraan; cookie memungkinkan kami melacak status aplikasi menggunakan file kecil yang disimpan di komputer pengguna. Jalur penyimpanan cookie bergantung pada browser. Internet Explorer biasanya menyimpannya di folder File Internet Temporal.
- Personalisasi pengalaman pengguna – hal ini dicapai dengan mengizinkan pengguna untuk memilih preferensi mereka. Halaman yang diminta untuk diikuti 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]); ?>
SINI,
- Php "setcookie" adalah Fungsi PHP 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 sifatnya wajib
- “[waktu_kedaluwarsa]” adalah opsional; dapat digunakan untuk mengatur waktu kadaluarsa cookie seperti 1 jam. Waktu diatur menggunakan fungsi PHP time() plus atau minus beberapa detik lebih besar dari 0 yaitu time() + 3600 selama 1 jam.
- “[cookie_path]” adalah opsional; itu dapat digunakan untuk mengatur jalur cookie di server. Garis miring “/” berarti cookie akan tersedia di seluruh domain. Subdirektori membatasi akses cookie ke subdomain.
- “[domain]” bersifat opsional, dapat digunakan untuk menentukan hierarki akses cookie, misalnya
www.cookiedomain.com
berarti seluruh domain sementarawww.sub.cookiedomain.com
membatasi akses cookie kewww.sub.cookiedomain.com
dan sub domainnya. Perhatikan bahwa dimungkinkan untuk memiliki subdomain dari subdomain selama total karakter tidak melebihi 253 karakter. - “[aman]” adalah opsional, defaultnya adalah 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, yaitu JavaNaskah 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 “cookies.php” di atas.
<?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 seconds
Mengambil nilai Cookie
Buat file lain bernama “cookies_read.php” dengan kode berikut.
<?php print_r($_COOKIE); //output the contents of the cookie array variable ?>
Keluaran:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Catatan: $_COOKIE adalah variabel super global bawaan PHP.
Ini berisi nama dan nilai dari semua cookie yang disetel.
Banyaknya nilai yang
Array $_COOKIE dapat berisi tergantung pada ukuran memori yang diatur di php.ini.
Nilai defaultnya adalah 1GB.
Menguji aplikasi kita.
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 masa kadaluarsanya, maka Anda mengatur waktu kadaluarsa ke waktu yang telah lewat.
- Buat file baru bernama cookie_destroy.php dengan kode berikut
<?php setcookie("user_name", "Guru99", time() - 360,'/'); ?>
- Ulangi langkah 1 hingga 3 dari bagian di atas dalam mengambil nilai cookie.
- Buka URL-nya http://localhost/phptuts/cookie_destroy.php
- Beralih ke URL http://localhost/phptuts/cookies_read.php hasil apa yang ditampilkannya?
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 cookie.
- Nilai sesi secara otomatis dihapus ketika browser ditutup. Jika Anda ingin menyimpan nilai secara permanen, 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 di mana pengguna jahat tidak dapat marah terhadapnya.
- 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, Anda harus terlebih dahulu memanggil fungsi PHP session_start dan kemudian menyimpan nilai Anda dalam variabel array $_SESSION.
Misalkan kita ingin mengetahui berapa kali suatu halaman telah dimuat, kita dapat menggunakan sesi untuk melakukannya.
Kode di bawah ini menunjukkan cara membuat dan mengambil nilai dari sesi
<?php session_start(); //start the PHP_session function if(isset($_SESSION['page_count'])) { $_SESSION['page_count'] += 1; } else { $_SESSION['page_count'] = 1; } echo 'You are visitor number ' . $_SESSION['page_count']; ?>
Keluaran:
You are visitor number 1
Menghancurkan Variabel Sesi
Fungsi session_destroy() digunakan untuk menghancurkan seluruh variabel sesi Php.
Jika Anda hanya ingin menghancurkan satu item sesi, gunakan fungsi unset().
Kode di bawah ini mengilustrasikan cara menggunakan kedua metode tersebut.
<?php session_destroy(); //destroy entire session ?>
<?php unset($_SESSION['product']); //destroy product session item ?>
Session_destroy menghapus semua data sesi termasuk cookie yang terkait dengan sesi tersebut.
Tidak disetel hanya akan membebaskan variabel sesi individual.
Data lainnya tetap utuh.
Kesimpulan
- Cookies adalah file kecil yang disimpan di komputer pengguna
- Cookie hanya dapat dibaca dari domain penerbit
- Cookies dapat mempunyai masa kadaluwarsa, jika tidak diatur, maka cookie akan kadaluwarsa ketika browser ditutup
- Sesi seperti variabel global yang disimpan di server
- Setiap sesi diberikan id identifikasi unik yang digunakan untuk melacak variabel bagi pengguna.
- Cookie dan sesi harus dimulai sebelum tag HTML apa pun dikirim ke browser.