Register Globals dalam dunia PHP

register global php
Register global ialah salah satu setting yang terdapat didalam file php.ini yang bertugas mengatur apakah variabel-variabel EGCPS (Environment, FET,POST,Cookie,Server) akan didaftarkan sebagai variabel global atau tidak.

Beberapa Pertanyaan yang sering muncul karena masalah Register Globals.

Berikut beberapa contoh pertanyaan yang berhubungan dengan register globals, diantaranya :

  • Applikasi saya dapat berjalan di localhos, tapi ketika saya upload di Internet, kok gag bisa jalan?
  • Applikasi dapat berjalan di laptop/komputer saya dengan baik, tertapi ketika saya jalankan pada komputer teman saya, kog gag bisa jalan?
  • Mengapa data-data yang saya inputkan melalui form tidak bisa disimpan/ditampilkan?
  • Mengapa applikasi upload file yang saya buat berdasarkan petunjuk buku tidak jalan? padahal sama persis
  • Mengapa applikasi yang saya buat menggunakan Mambo (termasuk juga Joomla, PHPnuke, Postnuke, PHPBB) tiba-tiba tidak bisa jalan di internet, padahal sebelumnya jalan.
Dan masih banyak lagi pertanyaan yang muncul karena masalah register globals, pertanyaan sejenis tersebut banyak bermunculan di forum-forum W3, disini saya ingin membagi ilmu tentang register globals.

Setting Register Globals

Setting Register Globals terdapat dalam file php.ini. Pada Windows biasanya file php.ini terdapat pada directory C:/xampp/php, jika pada linux biasanya terletak pada directory /opt/lampp/etc. untuk pastinya silahkan jalankan phpinfo.php,
phpinfo
dari gambar diatas diketahui, file php.ini berada pada directory /opt/lampp/etc.

sedikit tentang file php.ini :
  • File php.ini adalah file yang mengatur seluruh konfigurasi PHP (tidak hanya register globals). dan seluruh konfigurasi dalam file php.ini dapat di tampilkan melalui phpinfo.php.
  • Setiap mengubah konfigurasi dari file php.ini jangan lupa untuk me-restart Apache anda.
  • Tanda titik koma (;) banyak ditemukan dalam file php.ini. Hal tersebut menunjukan bahwa kata-kata yang terdapat di sampingya hanyalah komentar.
  • biasanya file phpinfo.php sudah ada saat anda menginstall PHP, atau menginstal paket seperti xampp, lampp, dll
  • jika anda tidak menemukan nya, anda dapat membuat sendiri dengan cara yang mudahScript phpinfo.php
<?php
     phpinfo();
?>
Pada awal perkembangannya, secara default regisster global di set On, dengan tujuan memberi kemudahan pengguna dalam mempelajari PHP, sehingga pengguna dapat memanggil langsung variabelnya, tanpa pedul apakah variabel tersebut berasal dari GET,POST,COOKIE, atau SESSION. contoh scriptnya sebagai berikut

Script global_on.php
<?php
echo "<form method='GET' action='global_on.php'>
Isikan sebuah kata : <input typr='text' name='kata'>
<input type='submit' name='oke' value='kirim'></form>";
if (isset($oke=='kirim')){
   echo"Kata yang anda masukan adalah : $kata";
?>
Namun pada sejak versi 4.3.X ke atas, nilai Default register globals = off, sehingga jika script global_on.php dijalankan pada setingan register globals - off tidak akan menghasilkan apa-apa.

Sehingga agar Script tersebut dapat berjalan pada register global = off, maka perlu disesuaikan dengan variabelnya menjadi seperti beerikut :

Script global_off.php
<?php
echo "<form method='GET' action='global_on.php'>
Isikan sebuah kata : <input typr='text' name='kata'>
<input type='submit' name='oke' value='kirim'></form>";
if (isset($_GET['oke']=='kirim')){
   echo"Kata yang anda masukan adalah : $_GET['kata']";
?>

0 comments: