web 2.0

Kamis, 11 Februari 2010

Session pada PHP

Session merupakan suatu mekanisme untuk menyimpan suatu data tertentu seperti username atau password pada saat mengakses suatu web site. Data session tersimpan pada web server, yang berfungsi untuk membentuk interaksi antara client dan web server. Pada prinsipnya session dan cookie mekanisme kerja nya hampir sama, tetapi berbeda tempat penyimpanannya, jika session menyimpan data pada server sedangkan cookie menyimpan data pada client.

Sebagai contoh, jika kita ingin mengakses webmail pada suatu server, maka sebelumnya kita harus login terlebih dahulu dengan memasukkan username & password agar dapat mengakses halaman webmail tersebut. Setelah melakukan login, maka username & password yang telah kita inputkan pada form webmail tersebut akan tersimpan secara otomatis pada server selama kita mengakses halaman webmail. Data tersebut akan hilang dari server jika kita melakukan log out/sign out atau menutup aplikasi browser.

Pada intinya session hanya menyimpan data sementara selama melakukan akses pada suatu web, untuk kepentingan keamanan selama mengakses web tersebut.
Setelah PHP versi 4.2.0 keatas, default setting register_globals = off. sedangkan pada PHP sebelumnya setting untuk register_globals = on.

Perubahan konfigurasi setting pada register_globals merupakan hal untuk menjaga keamanan variabel data yang dikirim pada setiap halaman web. Variabel data yang dikirimkan tersebut bisa melalui GET, POST, COOKIE ataupun SESSION. Pada bagian ini, kita akan membahas bagaimana program PHP untuk management session.
Untuk mengetahui register_globals = on/off anda bisa menampilkan source berikut :

phpinfo.php
<?php phpinfo(); ?> 

Dibawah ini merupakan contoh program jika konfigurasi register_globals=on :

file1.php
<?php
session_start();
$username='saya';
$pass='rahasia';
session_register('username');
session_register('pass');
echo "</br><a href='file2.php'>file2.php</a>";
?>

file2.php
<?php
session_start();
echo $username."</br>".$pass;
?> 

Dibawah ini merupakan contoh program jika konfigurasi register_globals=off :

file1.php
<?php
session_start();
$username='saya';
$pass='rahasia';
$_SESSION['username']=$username;
$_SESSION['pass']=$pass;
echo "</br><a href='file2.php'>file2.php</a>";
?>


file2.php
<?php
session_start();
echo $_SESSION['username']."</br>". $_SESSION['pass'] ;
?> 

untuk kasus register_globals=on, source diatas juga dapat digunakan jika versi php >= 4.1.0. sebaiknya gunakan $_SESSION jika php version >= 4.1.0, walaupun register_globals off ataupun on, session tetap dapat berjalan dengan semestinya.

Jika setting pada webserver register_globals=off dan agar pengiriman data melalui GET, POST serta COOKIE/SESION dapat berjalan seperti konfigurasi register_globals=on, maka anda bisa menambahkan baris berikut pada header source program PHP (versi PHP >= 4.1.0) :

import_request_variables('GPC');

Dengan menambahkan source diatas pada header, maka pendefinisian variabel yang dikirimkan melalui metode GET, POST ataupun COOKIE tidak diperlukan lagi walaupun konfigurasi setting webserver register_globals=off.

Selamat trial and error..


ref :

http://id.php.net/session
http://www.phpfreaks.com/phpref/14.php

0 komentar:

Posting Komentar

Seputar Dunia Komputer, Kode Pemrograman, Coding, SQL Injection, Tips dalam Komputer, Hacker dan Cracker