To relieve register_globals and magic_quotes_gpc refugees.
In PHP 5.4, violent directives (register_globals
and magic_quotes_gpc
) has been removed.
But there are systems that may still depend on them.
This library reproduce these features in PHP 5.4 and later. Salvation
<?php
/**
* example.com/?foo=3&bar=12
*/
(new Gongo\MercifulPolluter\Request)->pollute();
global $foo, $bar;
var_dump($foo, $bar);
/**
* int(3)
* int(12)
*/
Add this lines to your application's composer.json
:
{
"require": {
"gongo/merciful-polluter": "*"
}
}
And then execute:
$ composer install
Or install it yourself as:
$ composer require gongo/merciful-polluter
See also: https://packagist.org/packages/gongo/merciful-polluter
Add this lines to your application's entry point (like in auto_prepend_file
):
<?php
$request = new Gongo\MercifulPolluter\Request;
$request->pollute();
// main routine...
If use the session, call Gongo\MercifulPolluter\Session::pollute()
after session_start()
:
session_start();
/**
* $_SESSION['user_id'] = 'gongo'
*/
(new Gongo\MercifulPolluter\Session)->pollute();
var_dump($user_id); // string(5) "gongo"
// Reference global variables to session.
$user_id = 'taro';
var_dump($_SESSION['user_id']); // string(4) "taro"
If want to apply magic_quotes_gpc
, call Gongo\MercifulPolluter\Request::enableMagicQuotesGpc()
:
<?php
/**
* example.com/?foo=1'2'3
*/
$request = new Gongo\MercifulPolluter\Request;
$request->enableMagicQuotesGpc();
$request->pollute();
// $_GET['foo'] => "1\'2\'3"
// $foo => "1\'2\'3"
MIT License.