Cara Mengaktifkan Register Global di PHP 5
Jika sudah memahami potensi keamanan dari register globals dan anda masih tetap ingin mengaktifkan register global, maka ada beberapa cara untuk menjalankan ini.
Berikut beberapa cara untuk mengaktifkan / enable register globals
Cara Pertama: Edit php.ini
Buka file php.ini lalu tambahkan baris berikut:
register_globals=1
Jika tidak punya akses ke server sehingga tidak bisa mengedit php.ini, maka cara yang lain adalah dengan mengedit file .htaccess pada folder aplikasi php berada. Tambahkan kode berikut:
php_flag register_globals 1
<?php
include
(
'register_globals.php'
);
register_globals();
lalu buat file register_globals.php berikut:
<?php
/**
* function to emulate the register_globals setting in PHP
* for all of those diehard fans of possibly harmful PHP settings :-)
* @author Ruquay K Calloway
* @param string $order order in which to register the globals, e.g. 'egpcs' for default
* @link hxxp://www.php.net/manual/en/security.globals.php#82213
*/
function
register_globals(
$order
=
'egpcs'
)
{
// define a subroutine
if
(!function_exists(
'register_global_array'
))
{
function
register_global_array(
array
$superglobal
)
{
foreach
(
$superglobal
as
$varname
=>
$value
)
{
global
$
$varname
;
$
$varname
=
$value
;
}
}
}
$order
=
explode
(
"\r\n"
, trim(
chunk_split
(
$order
, 1)));
foreach
(
$order
as
$k
)
{
switch
(
strtolower
(
$k
))
{
case
'e'
: register_global_array(
$_ENV
);
break
;
case
'g'
: register_global_array(
$_GET
);
break
;
case
'p'
: register_global_array(
$_POST
);
break
;
case
'c'
: register_global_array(
$_COOKIE
);
break
;
case
's'
: register_global_array(
$_SERVER
);
break
;
}
}
}
/**
* Undo register_globals
* @author Ruquay K Calloway
* @link hxxp://www.php.net/manual/en/security.globals.php#82213
*/
function
unregister_globals() {
if
(
ini_get
(register_globals)) {
$array
=
array
(
'_REQUEST'
,
'_SESSION'
,
'_SERVER'
,
'_ENV'
,
'_FILES'
);
foreach
(
$array
as
$value
) {
foreach
(
$GLOBALS
[
$value
]
as
$key
=>
$var
) {
if
(
$var
===
$GLOBALS
[
$key
]) {
unset(
$GLOBALS
[
$key
]);
}
}
}
}
}
?>