gongo / merciful-polluter
Emulate `register_globals` and `magic_quotes_gpc` in PHP 5.4 or higher
Installs: 13 122
Dependents: 0
Suggesters: 0
Security: 0
Stars: 17
Watchers: 1
Forks: 6
Open Issues: 2
pkg:composer/gongo/merciful-polluter
Requires
- php: >=5.4
Requires (Dev)
- php-coveralls/php-coveralls: *
- phpunit/phpunit: ^9 || ^7.5 || ^4.8.35
This package is auto-updated.
Last update: 2025-10-14 17:53:04 UTC
README
To relieve register_globals and magic_quotes_gpc refugees.
Description
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
Usage
<?php /** * example.com/?foo=3&bar=12 */ (new Gongo\MercifulPolluter\Request)->pollute(); global $foo, $bar; var_dump($foo, $bar); /** * int(3) * int(12) */
Installation
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
Features
Emulate register_globals
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"
Emulate magic_quotes_gpc
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"
License
MIT License.