Menggunakan Cookies Dan Session di PHP

Membuat dan menggunakan Cookie di PHP adalah cara menyimpan data sementara di sisi client, sedangkan kalau ingin menyimpan di sisi server bisa pakai Session.
Mengenal Cookie di PHP
Cookie HTTP adalah data kecil yang dikirim dari situs web dan disimpan di komputer pengguna oleh browser saat browsing, biasanya lewat HTTP Header.
syntax cookie di php :
setcookie(name, value, expire, path, domain, secure, httponly);
beberapa parameter yang ada di cookie PHP:
name: kunci untuk mengambil nilai dari$_COOKIEsuperglobal. satu-satunya parameter yang wajib adavalue: nilai yang disimpan dalam cookie. data ini bisa diakses browser, jadi jangan simpan data sensitif di siniexpire: timestamp Unix kapan cookie kedaluwarsa. kalau di-set 0, cookie berakhir saat sesi browser ditutuppath: cakupan cookie./berarti tersedia di seluruh domaindomain: domain atau subdomain tempat cookie tersediasecure: kalautrue, cookie hanya dikirim lewat koneksi HTTPShttponly: kalautrue, cookie tidak bisa diakses JavaScript, hanya lewat HTTP/HTTPS
Implementasi Syntax Cookie di PHP
- membuat dan memodifikasi cookie:
setcookie('user', 'Sigit N', time() + 86400, '/');
- pengecekan data cookie:
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 dengan mengatur waktu kedaluwarsa ke masa lalu:
setcookie('user', '', time() - 3600, '/');
Penjelasan :
setcookie('user', 'Sigit N', time() + 86400, '/'): membuat cookieuserbernilaiSigit Nyang berlaku 1 hari (86400 detik) di seluruh path- perlu diingat, cookie baru bisa diakses lewat
$_COOKIEdi request berikutnya, bukan langsung di halaman yang sama. jadi setelah set, refresh dulu - untuk menghapus cookie, set waktu kedaluwarsanya ke waktu yang sudah lewat, misal
time() - 3600
Mengenal Session di PHP
Session sama seperti cookie, tapi datanya disimpan di sisi server. session butuh cookie juga, isinya cuma key acak untuk mengunci session. biasanya di PHP ada header PHPSESSID, itu key dari session.
Perbedaan Cookie dan Session
- penyimpanan utama session ada di sisi server, key-nya (PHPSESSID) disimpan di cookie
- cookie disimpan penuh di sisi client web browser
- session cocok untuk menyimpan data sensitif yang tidak boleh dimodifikasi di sisi client
pemanfaatan cookie:
- memunculkan pesan sementara
- data sementara seperti analitik user
- keranjang belanja untuk ecommerce
- menyimpan preferensi user (tema, bahasa)
- history browsing
sedangkan pemanfaatan session:
- menyimpan data login user
- menyimpan token sementara
- status data untuk flagging
- middleware seperti di laravel
Implementasi Syntax Session di PHP
- memulai Session:
<?php
session_start();
?>
- simpan dan cek data Session:
<?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 = [];
Penjelasan :
session_start(): wajib dipanggil sebelum menggunakan$_SESSION, taruh paling atas file sebelum output apa pun$_SESSION = []: mengosongkan data session sehingga session seperti baru lagi. untuk benar-benar menghancurkan session, panggil jugasession_destroy()?? 'Guest': null coalescing operator, kalau$_SESSION['name']tidak ada, pakai defaultGuestPenguasaan if-elseif-else Conditional If di PHP: Cara Mudah Membuat Kode yang Efisien
Mengatasi Kesalahan php is not recognized as an internal or external command
Pertanyaan yang Sering Diajukan
Apa beda cookie dan session di PHP?
Cookie disimpan di sisi client (browser) dan bisa diakses user, sedangkan session datanya disimpan di sisi server dan hanya menyimpan key-nya (PHPSESSID) di cookie. Data sensitif seperti login sebaiknya pakai session.
Kenapa setcookie tidak langsung muncul saat diakses?
Cookie baru tersedia di $_COOKIE pada request berikutnya, karena cookie dikirim lewat header HTTP saat response. Untuk tes langsung, refresh halaman dulu.
Kapan cookie kadaluarsa?
Sesuai parameter expire. Kalau di-set 0 atau tidak diisi, cookie hilang saat browser ditutup (end of session). Contoh time() + 86400 berarti berlaku 1 hari.
Aman tidak menyimpan data penting di cookie?
Tidak. Cookie tersimpan di client dan bisa dibaca bahkan dimodifikasi user. Jangan simpan password atau data sensitif di cookie, gunakan session atau enkripsi.

