Menggunakan Cookies Dan Session di PHP
Membuat dan menggunakan Cookie di PHP adalah cara menyimpan data sementara di sisi client sedangkan jika ingin menyimpan di sisi server bisa menggunakan dengan Session function.
Mengenal Cookie di PHP
Cookie HTTP adalah sebuah kode yang kecil berupa data yang dikirim dari situs WEB dan disimpan di komputer pengguna oleh browser WEB pengguna saat pengguna untuk keperluan browsing, biasanya disimpan dalam HTTP Header.
syntax cookie di php :
setcookie(name, value, expire, path, domain, security);
beberapa parameter yang harus ada di cookie PHP:
-
name
: merupakan kunci yang dapat digunakan untuk mengambil nilai dari$_COOKIE
superglobal di PHP. Variabel global ini adalah satu-satunya parameter yang diperlukan untuk mengambil value cookie. -
value
: value atau Nilai yang akan disimpan dalam cookie. Data ini dapat diakses oleh browser jadi disarankan untuk tidak menyimpan sesuatu data yang sensitif di sini. -
expire
: timestamp atau bentuk Stempel waktu dengan format Unix yang menunjukkan kapan cookie harus dalam kondisi kedaluwarsa. Jika waktu timestamp menjadi nol, maka cookie akan berstatus kadaluarsa pada akhir sesi. Jika di set ke nilai angka yang kurang dari waktu stempel timestamp Unix pada saat ini,maka cookie akan segera kadaluarsa. -
path
: sebuah cakupan jangkauan cookie. Jika di set ke/
maka cookie akan tersedia di seluruh domain. dan Jika disetel ke/domain-lain/
maka cookie hanya akan tersedia di jalur URL itu dan hanya turunan dari jalur URL itu saja.secara Default, di set ke jalur URL file saat di gunakan tempat cookie sedang diet. -
domain
: Domain atau subdomain URL tempat cookie tersedia dan di set. Jika diset ke domain kosong misal pemburukode.com maka cookie akan tersedia untuk domain itu dan semua subdomain. Jika diatur ke subdomain baru.pemburukode.com maka cookie hanya akan tersedia di subdomain itu saja, dan semua subdomain yang diset. -
secure
: jika di set ke valueTRUE
,maka cookie hanya akan direset jika ada koneksi menggunakan protokol HTTPS yang aman antara klien dan server. -
httponly
: menentukan bahwa sebuah cookie hanya boleh tersedia melalui protokolHTTP
atauHTTPS
dan tidak bisa untuk tersedia bahasa pemrograman client browser seperti JavaScript. fitur ini hanya tersedia di versi PHP 5.2 atau lebih baru.
Implementasi Syntax Cookie di PHP
- memodifikasi cookie dengan syntax berikut
setcookie('user, 'Sigit N, time() + 86400, '/);
- pengecekan data cookie, syntax sebagai berikut
if (isset($_COOKIE['user'])) {
echo 'kamu sebagai user ' . $_COOKIE['user'];
else {
// kondisi cookie tidak diset
echo 'Kamu tidak sedang login';
}
- mengambil data di cookie:
echo $_COOKIE['user'];
- menghapus data cookie :
unset($_COOKIE['user']);
Mengenal Session di PHP
Session sama seperti dengan Cookie akan tetapi penyimpanan datanya di dalam sisi server, session membutuhkan cookie isi cookienya yaitu key data random untuk kunci session, biasanya di php ada header berupa PHPSESSID
itu merupakan key dari session.
Perbedaan Cookie dan Session
-
penyimpanan utama dari session ada di sisi server, tapi key session disimpan di cookie.
-
sedangkan cookie disimpan secara penuh ada di sisi client web browser atau ada disimpan HTTP Header.
-
penggunaan session untuk menyimpan data sensitif yang tidak boleh dimodifikasi di sisi client. pemanfaatan cookie:
- contoh cookie digunakan untuk memunculkan pesan sementara.
- data sementara seperti analitik user.
- untuk keranjang belanja untuk keperluan ecommerce
- untuk menyimpan status login.
- history browsing.
- dan lain sebagainya.
-
sedangkan pemanfaatan session:
- menyimpan data login user.
- menyimpan data token sementara.
- status data untuk flagging.
- memanfaatkan session untuk middleware seperti di laravel.
Implementasi Syntax Session di PHP
- Memulai Session di PHP dengan syntax berikut
<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
// php >= 7 version
session_start([
'cache_limiter' => 'private',
'read_and_close' => true,
]);
} else {
// php < 7 version
session_start();
}
?>
- pengecekan data Session, syntax sebagai berikut
<?php
session_start();
$_SESSION['id'] = 441;
if(!isset($_SESSION['login'])) {
echo 'Silahkan Login terlebih dahulu';
exit;
}
$user = $_SESSION['login'];
$name = $_SESSION['name'] ?? 'Guest';
- mengambil data di Session:
$_SESSION['id'] = 1443
echo $_SESSION['id'];
- menghapus data Session :
session_start();
$_SESSION = array();
Penjelasan :
$_SESSION = array();
: dengan menyimpan data kosong array maka akan mengembalikan session seperti baru lagi dan menghilangkan data