Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gongo/merciful-polluter

Emulate "register_globals" and "magic_quotes_gpc"
https://github.com/gongo/merciful-polluter

Last synced: about 4 hours ago
JSON representation

Emulate "register_globals" and "magic_quotes_gpc"

Awesome Lists containing this project

README

        

MercifulPolluter
====================

To relieve [register_globals](http://php.net/register_globals) and [magic_quotes_gpc](http://php.net/magic_quotes_gpc) refugees.

![CI status](https://github.com/gongo/merciful-polluter/actions/workflows/ci.yml/badge.svg?branch=master)
[![Coverage Status](https://coveralls.io/repos/gongo/merciful-polluter/badge.png?branch=master)](https://coveralls.io/r/gongo/merciful-polluter?branch=master)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/gongo/merciful-polluter/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/gongo/merciful-polluter/?branch=master)

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
pollute();

global $foo, $bar;
var_dump($foo, $bar);

/**
* int(3)
* int(12)
*/
```

Installation
--------------------

Add this lines to your application's `composer.json`:

```json
{
"require": {
"gongo/merciful-polluter": "*"
}
}
```

And then execute:

```sh
$ composer install
```

Or install it yourself as:

```sh
$ 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
pollute();

// main routine...
```

If use the session, call `Gongo\MercifulPolluter\Session::pollute()` **after** `session_start()`:

```php
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
enableMagicQuotesGpc();
$request->pollute();

// $_GET['foo'] => "1\'2\'3"
// $foo => "1\'2\'3"
```

License
--------------------

MIT License.