Secara umum, session digunakan untuk menyimpan suatu informasi antar proses request, baik request dalam bentuk POST atau GET. Session adalah variable yang dapat mempertahankan isinya dalam periode waktu tertentu (bisa diset) dan disimpan diserver. Meskipun berpindah-pindah halaman (dalam 1 website tersebut) variable masih bertahan. Jadi session hanyalah sebuah variable dengan karakteristik tertentu.
PHP mempunyai session (catatan aktivitas) yang digunakan untuk menjaga / memelihara informasi akses dari seorang pengakses / pemakai aplikasi web. Session memungkinkan pelacakan akses pemakai, pangaturan pemakaian aplikasi oleh pemakai dan meningkatkan layanan situs web. Setiap pengunjung akan diberi sebuah id yang unik, yang disebut dengan id session (session_id). ID ini dapat disimpan dalam suatu cookie pada sisi user atau disertakan dalam URL. Session koneksi antara klien dan server akan hilang atau putus apabila browser ditutup. Apabila browser dijalankan kembali dan koneksi ke server dilakukan maka dianggap sebagai koneksi baru.
Salah satu contoh yang menggambarkan penggunaan session adalah proses login. Dalam hal ini user akan memasukkan usernamenya melalui form login. Setelah login berhasil, user tersebut dihadapkan pada link menu navigasi yang menuju ke beberapa halaman web. apabila Apabila user memasukkan username maka akan selalu tampil atau tercatat di halaman-halaman web tersebut, maka username haruslah disimpan dalam session.
B. KONSEP DASAR SESSION
Session bekerja seperti tempat penitipan barang di supermarket. Pembeli datang, menitipkan barang bawaan, dan petugas akan memberikan tanda pengenal. Pada saat pembeli akan mengambil barang, pembeli memberikan tanda pada petugas, dan petugas akan dapat mengambil barang yang dititipkan tanpa tertukar dengan barang orang lain. Permasalahan yang terjadi adalah, bagaimana “tanda pengenal” tersebut akan disimpan pada setiap halaman yang diakses user, sehingga dapat diakses oleh sistem setiap kali user mengklik link. Ada tiga alternatif yang dapat digunakan untuk menyimpan data session :
- Cookie
- Hidden Form
- URL Embedding
Secara umum, cara kerja session dapat dideskripsikan seperti Saat pengunjung mengakses suatu halaman, pengunjung tersebut memulai session (digunakan fungsi session_start()). Bila dalam konfigurasi php, session.auto_start diset ke 1 maka php akan melakukan start session secara otomatis.
Pengunjung tadi kemudian diberi pengenal berupa session id, Session id ini adalah rangkaian karakter yang unik, misalnya 12345678xx.. Bersamaan dengan itu, pada sisi server juga dibuat file ses_12345678xx yang berisi variabel-variabel session milik si pengunjung. Variabel yang diregister dengan fungsi session_register() akan disimpan dalam file ini.
Metode di atas adalah default. Tetapi bisa jug menentukan lokasi penampungan variabel session sendiri, misalnya di database. Saat pengunjung memulai atau melanjutkan session (melalui session_start()) maka pengunjung mengirim session id miliknya untuk memperoleh kembali variabel-variabel session miliknya yang telah disimpan di server.
Pengiriman session id ke server bisa melalui 2 cara. Yang pertama, yaitu cara default, dikirim melalui cookies. Session id berupa cookie PHPSESSID (default). Ada kalanya dengan alasan tertentu, pengunjung menonaktifkan cookies (bisa dilakukan melalui setting browsernya). Bila hal ini terjadi, maka pengiriman session id dilakukan dengan cara kedua, yaitu melalui query string (string yang ditambahkan ke URL, seperti contoh di awal artikel).
Session akan berakhir saat fungsi session_destroy() dipanggil atau sewaktu user menutup web browsernya. Dari cara kerja session tadi, terlihat bahwa yang menjadi kunci pegangan si pengunjung (di sisi client) hanyalah variabel session id, sedangkan variabel-variabel lain miliknya di server. Adanya fasilitas session handling di PHP menjadikan proses diatas menjadi sederhana dan mudah karena PHP melakukannya otomatis.
C. PENERAPAN SESSION DI PHP
PHP mempunyai session (catatan aktivitas) yang digunakan untuk menjaga / memelihara informasi akses dari seorang pengakses / pemakai aplikasi web. Session memungkinkan pelacakan akses pemakai, pangaturan pemakaian aplikasi oleh pemakai dan meningkatkan layanan situs web. Setiap pengunjung akan diberi sebuah id yang unik, yang disebut dengan id session (session_id). ID ini dapat disimpan dalam suatu cookie pada sisi user atau disertakan dalam URL. Session koneksi antara klien dan server akan hilang atau putus apabila browser ditutup. Apabila browser dijalankan kembali dan koneksi ke server dilakukan maka dianggap sebagai koneksi baru.
Script di atas akan mendaftar sesi user dengan server, memungkinkan pengguna untuk memulai menyimpan informasi pengguna, dan menetapkan UID untuk yang sesi pengguna.
Script di atas adalah untuk menyimpan variable session.
Script di atas adalah script untuk menghancurkan data session/membebaskan variable session.
Pertukaran Variabel antar script
Bila suatu variabel didefinisikan secara global pada skrip PHP, maka variabel itu memiliki lingkup hanya sebatas dalam skrip PHP itu saja. Variabel itu tidak dapat diakses dari file PHP lain dengan cara biasa. Jika menginginkan variabel yang bisa diakses dari banyak file PHP, diperlukan variabel yang bersifat superglobal.
Untuk itu, variabel harus dipropagasi atau dikirim ke server terlebih dahulu. Ada beberapa cara untuk melakukannya. Pertama, variabel tersebut dikirim secara langsung melalui string yang ditambahkan ke URL, seperti halnya metode GET dalam pengiriman data. Contoh sederhananya pada URL berikut:
utama.php?halaman=1&userid=100
URL ini akan menuju ke file utama.php dan pada utama.php akan terdapat variabel $halaman yang bernilai 1 dan variabel $userid bernilai 100.
Cara lain yaitu menggunakan cookies. Cookies adalah mekanisme penyimpanan data atau variabel di sisi klien (browser). Dengan menyimpan variabel sebagai cookie, data tersebut akan tetap ada sampai waktu kadaluarsa yang bisa ditentukan. Cookie biasa dipakai di situs-situs untuk mengidentifikasi pengunjung yang mengakses situs mereka. Misalnya pada aplikasi polling, dimana satu pengunjung hanya bisa melakukan vote satu kali dalam sehari.
RAHMAD KURNIAWAN
2 Tanggapan untuk "SESSION PADA PHP"
thanks gan , sangat bermanfaat artikelnya.
Trims atas ilmunya... Bagaimana cara mengirimkan nilai variabel dgn URL embed, misalnya saya ingin mengirimkan nilai yang terdapat dalam variabel $iduser ke variabel idsiswa pada page utama.php. sehingga di page utama.php dikenal var idsiswa dengan nilai bersal dari iduser. Mohon pencerahan dan terima kasih sebelumnya
Post a Comment