Subscribe:Posts Comments
Share |

You Are Here: Home » Elearning, Programing, Uncategorized » Mengatasi Masalah pada PHP dengan Register Globals Off

Mulai versi 4.3.X, secara default setting register_globals pada PHP diset ke Off. Tujuannya buat meningkatkan sekuritas. Akibatnya banyak juga perusahaan hosting yang mengeset (baca: membiarkan seperti default) register_globals = Off.Bayangkan aja kalo misalnya kita mempunyai aplikasi PHP yang dibuatuntuk environment register_globals=ON, makan waktu juga kalo buat mengedit sana-sininya.

Buat mengatasi masalah tersebut, coba pake tips ini:

Buat file script PHP yang isinya begini yang diambil dari paket Mambo.

PHP:
  1. <?php
  2.      
  3. $raw = phpversion();
  4. list($v_Upper,$v_Major,$v_Minor) = explode(“.”,$raw);
  5.  
  6. if (($v_Upper == 4 && $v_Major <1) || $v_Upper <4) {
  7.     $_FILES = $HTTP_POST_FILES;
  8.     $_ENV = $HTTP_ENV_VARS;
  9.     $_GET = $HTTP_GET_VARS;
  10.     $_POST = $HTTP_POST_VARS;
  11.     $_COOKIE = $HTTP_COOKIE_VARS;
  12.     $_SERVER = $HTTP_SERVER_VARS;
  13.     $_SESSION = $HTTP_SESSION_VARS;
  14.     $_FILES = $HTTP_POST_FILES;
  15. }
  16.  
  17. if (!ini_get('register_globals')) {
  18.     while(list($key,$value)=each($_FILES)) $GLOBALS[$key]=$value;
  19.     while(list($key,$value)=each($_ENV)) $GLOBALS[$key]=$value;
  20.     while(list($key,$value)=each($_GET)) $GLOBALS[$key]=$value;
  21.     while(list($key,$value)=each($_POST)) $GLOBALS[$key]=$value;
  22.     while(list($key,$value)=each($_COOKIE)) $GLOBALS[$key]=$value;
  23.     while(list($key,$value)=each($_SERVER)) $GLOBALS[$key]=$value;
  24.     while(list($key,$value)=@each($_SESSION)) $GLOBALS[$key]=$value;
  25.     foreach($_FILES as $key => $value){
  26.         $GLOBALS[$key]=$_FILES[$key]['tmp_name'];
  27.         foreach($value as $ext => $value2){
  28.             $key2 = $key . '_' . $ext;
  29.             $GLOBALS[$key2] = $value2;
  30.         }
  31.     }
  32. }
  33. ?>

Simpan file dengan ekstensi .php, misalnya globals.php

Kemudian include file tersebut pada setiap file yang dibuat untuk environtment register_globals=ON

PHP:
  1. include (“globals.php”);
© 2009 Bilcyber.com · Subscribe:PostsComments · Designed by Billy Wirawan ·