Contoh : http://namaserver.com/?m=news&a=read&id=3
m, a dan id merupakan parameter yang value nya : news, read, dan 3 dapat diproses oleh server.
Jenis URL seperti itu memiliki banyak kekurangan antara lain pada : nilai sekuritas, search engine friendly, dan human friendly.
Secara umum biasanya pada sisi server, URL tersebut akan ditangani oleh sebuah program sisi server. Salah satunya adalah PHP. Berikut saya contohkan sebuah program penangkap GET sederhana dengan PHP
$modul = $_GET[mod];
$mod_incl = "modules/" . $modul . "/index.php";
if( file_exists( $mod_incl ) ){
include $mod_incl;
}
contoh url yang digunakan : http://namaserver/index.php?mod=home
contoh lain:
$id = $_GET[id];
contoh url yang digunakan : http://namaserver/berita.php?id=3
Sekarang, kita akan mencoba mengganti proses dengan GET tersebut dengan menggunakan PATH_INFO. Perbedaannya adalah, PATH_INFO ini menangkap path dengan struktur direktori. Misal http://namaserver/index.php/artikel/136/namaberita.html. Maka PATH_INFO nya adalah /artikel/136/namaberita.html. Dengan memanfaatkan fungsi PHP explode() yang bertujuan untuk memecah sebuah kata berdasar karakter tertentu (dalam hal ini /), maka PATH_INFO dapat diambil aray sebagai contoh berikut
$_SERVER['PATH_INFO'] nya adalah /artikel/136/namaberita.html.
jika kita bentuk sebuah variabel $r_pathinfo = explode("/",$_SERVER['PATH_INFO']); maka,
$r_pathinfo[0]=
$r_pathinfo[1]=artikel
$r_pathinfo[2]=136
$r_pathinfo[3]=namaberita.html
Berikut contoh penggunaan PATH_INFO dalam PHP
$pathinfo_url = $_SERVER['PATH_INFO'];
$r_path = explode( "/", $pathinfo_url );
$modul = $r_path[1];
$mod_incl = "modules/" . $modul . "/index.php";
if( file_exists( $mod_incl ) ){
include $mod_incl;
}
url yang akan digunakan adalah : http://namaserver/index.php/home
contoh lain:
$pathinfo_url = $_SERVER['PATH_INFO'];
$r_path = explode( "/", $pathinfo_url );
$id = $r_path[1];
//query
url yang akan digunakan seperti berikut : http://namaserver/berita.php/3
Dengan menggunakan PATH_INFO, dan beberapa kombinasi fungsi terutama untuk filtering dan sanitasi aplikasi, maka kekurangan-kekurangan yang terdapat pada penggunaan method $_GET pada url dapat dikurangi, meski sebenarnya dengan tetap menggunakan $_GET dan memanfaatkan fasilitas mod_rewrite dari web server, url friendly seperti ini tetap saja bisa dibentuk. Namun dengan path_info, jelas proses setting mod_rewrite melalui .htaccess dapat lebih mudah
Model path info ini juga digunakan dalam framework-framework PHP yang handal seperti CI (CodeIgniter), CakePHP dll
Salam
http://bimosaurus.com/2012/03/23/mengganti-path-model-get-dengan-path_info/
ora paham ...
BalasHapuspodho, toosss, mulane tak catet nang kene hahaha
BalasHapuswkwkwkwk...hasemmmm. wis suwe ora dolanan ngono kuwi kok kaya bingung yah dadine....terakhir thn 2005-an kayane........hasyah kok wis 7 tahun yah....pantesan.
BalasHapusaku dolanan ngene ya merga kepeksa kok :D nek ra kepeksa ya ra dadi hahahah
BalasHapussampeyan brati termasuk melu kerja paksa nek ngono kang
BalasHapusmemaksa diri sendiri... karang ya pengangguran yen ra nyambut gawe ra ono sing nggaji :(
BalasHapusWuih... njelimet.. Haha.. Ini cara passing value selain pake get yah om?? Kalo cuma passing value antar halaman PHP biar secure kan bisa pake hidden field om?? Gak kebaca via URL :D
BalasHapusya memang banyak teknik di PHP kok. Sebenarnya lebih enak lagi kalau kita mau mengefektifkan PHP Framework yang sudah dikembangkan.. seperti CakePHP, CI, Seagull, Kohana, DooPHP, Yii... dll
BalasHapusDengan framework itu segala macam aksi kita diberi standard, dan segala path itu tidak sesuai dengan hierarki yang sebenarnya.
Cuma masalahnya: harus belajar lagi :D
Hidden field di form itu maksudnya? Kalau itu yang dimaksud, memang ketika kita menggunakan POST, value dari field itu tidak akan terlihat di url. Tetapi di source code tetep ada kan.
BalasHapusMaksud saya untuk proses clean url ini memang misal dalam satu situs, ada listing berita, itu kan tetep pake GET, kemudian belum lagi dengan search engine friendly..
kalau di CodeIgniter keren urlnya
http://namasitus/index.php/namaclass/namamethod/id.html
index.php bisa diumpetin lagi pake mod_rewrite..