A diretiva register_gobals foi DEPRECADA no PHP 5.3.0 e REMOVIDA a partir do PHP 5.4. 0 (por uma boa razão: pode facilmente levar a falhas de segurança se você não criar um código de alta qualidade)
Você não pode ativar a opção register_gobals no PHP 5.4 mais. Então, se você realmente precisa ter todas as variáveis registradas globais em alguns scripts, você precisa simular o comportamento antigo:
Crie o script php5.4-workaround.inc.php
<?php
// workaround for register_globals PHP 5.4:
/**
* 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
*/
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;
}
}
}
register_globals();
?>
Em debians php.ini
, o include_path
contém /usr/share/php
, portanto, se você colocar seu script lá, poderá incluí-lo em todos os scripts necessários:
<?php include("/usr/share/php/php5.4-workaround.inc.php"); ?>