PHP menawarkan metode dalam menyimpan variabel yang mempunyai sifat global. Dengan menggunakan variabel global ini, variabel dapat dikenali dan digunakan di semua halaman web tanpa harus dideklarasi ulang. Variabel global ini disebut session dan cookie.
Penggunaan session dan cookie biasanya berupa penyimpanan informasi yang bersifat private dan informasi ini digunakan secara berulang oleh user. Contoh penerapan session dan cookies adalah penyimpanan login account, menyimpan informasi barang yang sudah masuk keranjang belanja pada aplikasi e-commerce, atau aplikasi lainnya yang biasanya membutuhkan autentikasi.
Dalam membuat sebuah website, pembuat website juga harus mengantisipasi dari kemungkinan kegiatan–kegiatan yang berusaha membobol password melalui SQL injection untuk mengamankan data.
Session
Session dalam PHP mengandung suatu mekanisme untuk menjaga sejumlah data tetap dapat diakses dalam serangkaian halaman website. Mekanisme ini memungkinkan pembuat web untuk membangun aplikasi yang lebih terkostumisasi dan lebih menarik.
Session memungkinkan untuk mendaftarkan sejumlah variabel untuk tetap dapat digunakan dalam halaman situs yang berbeda-beda. Ketika menggunakan session, data (variabel) akan tersimpan dan dikelola oleh server.
Seorang pengunjung yang mengunjungi sebuah website akan diberikan sebuah identitas yang unik, dan disebut dengan session id.
Memulai Session
Sebelum dapat menggunakan session untuk menyimpan informasi–informasi yang dibutuhkan oleh pengguna, harus dimulai dengan memulai (start) session. Memulai session harus dilakukan paling awal sebelum HTML atau text dituliskan. Berikut ini merupakan script yang harus ditempatkan pada permulaan kode PHP untuk memulai session pada PHP.
<?php
session_start();
?>
Function session_start() akan men-generate session id secara acak. Nama default yang diberikan kepada session id yang terbentuk adalah PHPSESSID, akan tetapi nama ini dapat diubah pada konfigurasi PHP.
Menyimpan Data Session
Setelah menetapkan session, selanjutnya dapat membuat, menyimpan, atau menerima informasi atau data yang dibutuhkan. Data session disimpan dalam direktori khusus di server, path dari direktori yang dimaksud sesuai dengan konfigurasi pada web server.
Data session dibuat dengan mendaftarkan data session yang akan digunakan dengan menggunakan function session_register. Berikut ini adalah contoh untuk mendaftarkan data session :
<?php
session_start();
session_register(“nama_member”);
?>
Melalui script tersebut di atas, sebuah data session yang bernama nama_member sudah terbentuk. Untuk selanjutnya, data session ini dapat diakses pada setiap halaman pada website selama data session tersebut tidak dihapus. Aturan pembuatan nama untuk data session sama seperti aturan penamaan variabel pada umumnya.
Mengakses Data Session
Setelah sebuah data session dibuat, selanjutnya, pengisian nilai atau pengubahan nilai kepada data session dapat dilakukan dengan menggunakan function $_SESSION. Berikut ini adalah contoh untuk mengkakses data session :
<?php
session_start();
?>
<html>
<head>
<title>Coba Mengakses Data Session</title>
</head>
<?php
<body>
session_register(“nama_member”); session_register(“kunjungan”);
$_SESSION[‘kunjungan’]++;
$_SESSION[‘nama_member’] = “Hari Aspriyono”;
echo “Selamat Datang “.$_SESSION[‘nama_member’].”<br>”; echo “Anda telah mengunjungi halaman ini sebanyak”.$_SESSION[‘kunjungan’].” kali.”;
?>
</body>
</html>
Jika script di atas dijalanlan di web browser, akan didapatkan hasil seperti yang diperlihatkan pada gambar di bawah ini:
Gambar hasil mengakses Session
Membersihkan dan Menghapus Session
Ketika sebuah session dimulai pada sebuah website melalui perintah session_start(), file PHPSESSID akan selamanya tersimpan di server sampai pembuat website menghapus session tersebut. Function yang digunakan untuk menghapus session dari server adalah session_destroy().
Dengan menggunakan function session_destroy(), file PHPSESSID secara otomatis akan terhapus dari server secara permanen, dan semua session data yang ada tidak dapat digunakan lagi. Berikut ini adalah contoh untuk menghapus data session pada website:
<?php
session_start();
$id_session = session_id();
echo “Session ID Anda adalah “.$id_session;
echo “<br/><br/>”; session_destroy();
$id_session2 = session_id();
echo “Session ID Anda setelah data session di-destroy :”
.$id_session2;
?>
Pada script di atas terdapat perintah session_destroy() yang akan menghapus data session dan file PHPSESSID secara permanen. Pada baris ke-3, variabel $id_session berisi nilai session id, akan tetapi pada baris ke-7, variabel $id_session2 tidak lagi berisi nilai session id karena data session sudah dihapus.
Jika script di atas dijalankan di web browser akan didapatkan hasil seperti yang diperlihatkan pada gambar di bawah ini :
Gambar Hasil Menghapus Session
Untuk membersihkan nilai yang terdapat pada data session tanpa menghapus secara permanen file PHPSESSID, dapat digunakan function session_unregister().
Dengan menggunakan function session_unregister(), nilai yang tersimpan pada data session akan dihilangkan, tapi data session ini masih dapat digunakan atau diisi dengan nilai yang baru.
Contoh:
<?php
session_start(); session_register(“nama_member”);
$_SESSION[‘nama_member’] = “Hari Aspriyono”;
echo “Selamat Datang”.$_SESSION[‘nama_member’].”<br><br>”; session_unregister(“nama_member”);
if (isset($_SESSION[‘nama_member’])){
echo “Terima kasih “.$_SESSION[‘nama_member’].” masih berada pada website kami”;
}else{
echo “Terima kasih atas kunjungannya, kapan-kapan kunjungi website kami lagi y??”;
}
?>
Jika script di atas dijalankan di web browser, akan didapatkan hasil seperti yang diperlihatkan pada gambar di bawah ini :
Gambar Output Session Unregister