Untuk mengingat pengguna selama mereka menjelajahi situs — misalnya menjaga status login atau isi keranjang belanja — kita membutuhkan PHP Session. Berbeda dengan cookie yang menyimpan data di browser, session menyimpan data di server sehingga jauh lebih aman. Session adalah fondasi dari hampir semua fitur autentikasi.
Bagaimana Session Bekerja?
Ketika session dimulai, server membuat sebuah ID unik untuk pengunjung dan menyimpannya dalam cookie kecil. Data sebenarnya (nama, status login, dan lain-lain) disimpan di server, terhubung dengan ID tersebut. Jadi, browser hanya menyimpan “kunci”, bukan datanya.
Memulai Session
Setiap halaman yang memakai session harus memanggil session_start() di baris paling atas, sebelum output apa pun:
<?php session_start(); $_SESSION["pengguna"] = "Budi"; $_SESSION["role"] = "admin"; ?>
Membaca Data Session
Data session tersedia di semua halaman selama session aktif, cukup panggil session_start() lalu akses $_SESSION:
<?php
session_start();
if (isset($_SESSION["pengguna"])) {
echo "Halo, " . $_SESSION["pengguna"];
}
?>
Contoh Praktik: Melindungi Halaman
Session paling sering dipakai untuk membatasi akses. Berikut cara memastikan hanya pengguna login yang bisa membuka sebuah halaman:
<?php
session_start();
if (!isset($_SESSION["login"])) {
header("Location: login.php");
exit; // penting, hentikan skrip
}
echo "Selamat datang di dashboard!";
?>
Menghapus Session (Logout)
Saat pengguna logout, hapus semua data session:
<?php session_start(); session_unset(); // hapus semua variabel session session_destroy(); // hancurkan session ?>
Session vs Cookie
| Aspek | Session | Cookie |
|---|---|---|
| Lokasi data | Server | Browser |
| Keamanan | Lebih aman | Kurang aman |
| Cocok untuk | Login, data sensitif | Preferensi ringan |
Kesalahan Umum
- Lupa session_start() di salah satu halaman, sehingga
$_SESSIONkosong. - Tidak memanggil exit setelah redirect, sehingga kode di bawahnya tetap jalan.
Kesimpulan
PHP Session adalah kunci untuk membangun fitur login dan area anggota yang aman. Selalu mulai dengan session_start(), simpan data penting di server, dan hancurkan session saat pengguna logout.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

