Rabu, 30 Oktober 2013

Penggunaan dan Fungsi Session dalam PHP



Pendahuluan
Session adalah suatu cara agar suatu variable dapat diakses dibanyak halaman web. Session biasanya berupa file yang tersimpan di server, berbeda dengan Cookies yang disimpan di client.
Session bersifat uniq dari setiap pengunjung. jadi seandainya pengunjung bernama "lioniel" maka session yang dimiliki lioniel adalah 1 dan selanjutnya begitu. uniq id akan dikirim dan disimpan pada cookies atau pada URL.
Secara umum, session digunakan untuk menyimpan suatu informasi antar proses request, baik request dalam bentuk POST atau GET.
Dalam PHP session dapat dimulai dengan dua cara, yaitu secara otomatis dan menggunakan fungsi script session pada PHP. Untuk memulai session otomatis, file php.ini perlu di edit pada baris session.auto_start = 0 menjadi session.auto_start = 1 simpan perubahan tersebut dan restart web server.

Contoh  Script  PHP
Membuat satu halaman dengan nama session.php kemudian registerkan sebuah variable :
<?php
session_start();
$_SESSION[’lewat’] = 1;
?>
Kemudian buat sebuah file lagi dengan nama anotherpage.php :
<?php
session_start();
echo $_SESSION[’lewat’] ;
?>
Beberapa Jenis Session dalam PHP
1
1.      session_cache_expire — Mengembalikan nilai cache expire saat ini.
2.      session_cache_limiter — Mengambil atau mengatur pembatas cache (cache limiter) saat ini.
3.      session_commit — Nama lain dari session_write_close
4.      session_decode — Memecah kode data session dari sebuah strting.
5.      session_destroy — Menghancurkan semua data yang terdaftar dari sebuah session.
6.      session_encode — Mengkodekan data session saat ini sebagai sebuah string.
7.      session_get_cookie_params — Mengambil parameter cookie dari sebuah session.
8.      session_id — Mengambil atau mengatur session id saat ini.
9.      session_is_registered — Mengetahui apakah sebuah variabel telah terdaftar atau belum dalam sebuah session.
10.  session_module_name — Mengambil atau mengatur modul session saat ini.
11.  session_name — Mengambil atau mengatur nama session saat ini.
12.  session_regenerate_id — Memperbaharui id session saat ini dengan session id yang baru diciptakan.
13.  session_register — Mendaftarkan satu atau lebih variabel global pada session saat ini.
14.  session_save_path — Mengambil atau mengatur save path dari session saat ini.
15.  session_set_cookie_params — Mengatur parameter cookie dari session.
16.  session_set_save_handler — Mengatur user-level dari fungsi penyimpanan session.
17.  session_start — Menginisialisasi data dari session.
18.  session_unregister — Merubah status sebuah variabel global dari session saat ini menjadi tidak terdaftar.
19.  session_unset — Membebaskan ( melepas ) semua variabel dari ssession.
20.  session_write_close — Merekam data session dan mengakhiri session.



Cara Membuat Session dalam PHP
Ada beberapa cara yang dapat dilakukan untuk memulai sebuah session. Yang pertama adalah dengan menetapkan nilai session.auto_start di php.ini menjadi 1 atau on. Dengan demikian maka setiap sebuah aplikasi yang dibangun dengan PHP diakses, seketika itu pulalah sebuah session akan otomatis "aktif". Namun sekalipun cara ini tidak salah, tetapi amat sangat tidak dianjurkan. Mengapa? Karena secara default nilai session.auto_start di php.ini adalah 0 atau off. Anda memang bisa mengedit php.ini di komputer Anda, akan tetapi bila suatu ketika Anda harus melakukan web hosting di tempat lain, Anda tentu tidak berhak mengubah file php.ini di web server tersebut. Dan jika php.ini di server tersebut dibiarkan default apa adanya, maka aplikasi Anda tidak akan berjalan baik di server tersebut.
Untuk itu dianjurkan menggunakan cara lain dalam mengaktifkan sebuah session. Ada dua cara yang dapat digunakan dalam mengaktifkan session tanpa mengedit php.ini, yaitu secara eksplisit dan secara implisit. Pengaktifan session secara eksplisit dilakukan dengan fungsi session_start(), sedangkan secara implisit menggunakan fungsi session_register().
Penggunaan fungsi session_start() tentunya jelas. Dengan menjalankan fungsi tersebut, maka sebuah session akan dimulai. Fungsi ini tidak memerlukan parameter apapun, sehingga sintaks penggunaanya adalah dengan langsung saja menuliskan fungsi session_start() tersebut. Sedangkan fungsi session_register() pada prinsipnya adalah "mendaftarkan" variabel sehingga variabel-variabel tersebut akan dikenal sepanjang sebuah session sekaligus memulai sebuah session apabila belum dimulai. Sintaks penggunaan fungsi session_register() adalah sebagai berikut:
session_register(variabel1[,variabel2[,...]])
Harap diperhatikan, nama variabel di sini ditulis tanpa tanda $ di depannya. Setelah sebuah variabel di register, maka otomatis variabel tersebut akan menjadi variabel session. Contoh:
session_register("var1")
Nantinya dalam rangkaian aplikasi web tersebut, variabel $var1 akan dikenal sebagai variabel session dan bersifat global. Namun sayangnya hal ini tidak lagi berlaku sejak PHP 4.2.0 dan diatasnya, karena nilai register_globals di php.ini adalah off. Sebelum PHP 4.2.0 nilai register_globals adalah on. Sebagai gantinya, PHP memperkenalkan superglobals array untuk menangkap variabel-variabel session tersebut. Superglobal arrays tersebut adalah $_SESSION. Sebelum versi 4.0.6 Anda juga dapat menggunakan $HTTP_SESSION_VARS.
Kedua array ini bersifat asosiatif dan sebagai indeksnya adalah nama dari variabel session yang hendak digunakan. Sebagai akibat dari perubahan ini, maka fungsi session_register() tidak lagi diperlukan. Efek dominonya, fungsi session_unregister() dan session_is_registered() juga tidak lagi diperlukan. Fungsi session_unregister() adalah kebalikan dari fungsi session_register(), yaitu untuk "mencabut" variabel dari sebuah session, sedangkan fungsi session_is_registered() digunakan untuk memeriksa apakah sebuah variabel pernah didaftarkan pada sebuah session atau tidak.
Contoh Penggunaan Session PHP
Berikut ini akan diberikan contoh penggunaan session. Kita akan memanfaatkan contoh Artikel sebelumnya yaitu buat_form.html dan proses.php. Biarkan file buat_form.html seperti apa adanya sedangkan file proses.php di edit menjadi sebagai berikut:
<?php session_start(); ?>
<HTML>
<HEAD>
<TITLE> Fungsi Session </TITLE>
</HEAD>
<BODY>


<?php
$_SESSION['nama'] = $_POST['nama'];
$_SESSION['umur'] = $_POST['umur'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['waktu'] = date("H:s:i");
?>

<h1> Hallo <?=$_SESSION['nama']?> </h1>
<h2> Selamat Datang di situs Saya </h2>
Umur Anda saat ini adalah <?=$_SESSION['umur']?> tahun <br />
Alamat email Anda adalah <?=$_SESSION['email']?> <br />
Anda login pada jam <?=$_SESSION['waktu']?> <br />
<a href="http://localhost/next.php"> Klik di sini </a> untuk menuju ke halaman berikut.
</BODY>
</HTML>

1 komentar: