diff options
author | Christoph M. Becker <cmb@php.net> | 2015-08-09 02:51:16 +0200 |
---|---|---|
committer | Christoph M. Becker <cmb@php.net> | 2015-08-09 02:51:16 +0200 |
commit | fc69549593cb1ab4f9fa0fd41d74000cd4a98894 (patch) | |
tree | 26f6adb2bb229c062658b616f6f4be6742394bbd | |
parent | cab75d8b00b6e86f6e2ede1ba3b3bd35518fc3bd (diff) | |
parent | 36cbb7cc4c7cd492394c62cd883c8e29d4f45760 (diff) | |
download | php-git-fc69549593cb1ab4f9fa0fd41d74000cd4a98894.tar.gz |
Merge branch 'PHP-5.6'
* PHP-5.6:
Fix #66606: Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE
added tests for bug #66606
-rw-r--r-- | sapi/cli/php_cli_server.c | 3 | ||||
-rw-r--r-- | sapi/cli/tests/bug66606_1.phpt | 17 | ||||
-rw-r--r-- | sapi/cli/tests/bug66606_2.phpt | 46 |
3 files changed, 66 insertions, 0 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index f76199af9a..9c00fa0bdf 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -604,6 +604,9 @@ static int sapi_cli_server_register_entry_cb(char **entry, int num_args, va_list } } spprintf(&real_key, 0, "%s_%s", "HTTP", key); + if (strcmp(key, "CONTENT_TYPE") == 0 || strcmp(key, "CONTENT_LENGTH") == 0) { + sapi_cli_server_register_variable(track_vars_array, key, *entry); + } sapi_cli_server_register_variable(track_vars_array, real_key, *entry); efree(key); efree(real_key); diff --git a/sapi/cli/tests/bug66606_1.phpt b/sapi/cli/tests/bug66606_1.phpt new file mode 100644 index 0000000000..ad35038bae --- /dev/null +++ b/sapi/cli/tests/bug66606_1.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE) - GET request +--INI-- +allow_url_fopen=1 +--SKIPIF-- +<?php +include "skipif.inc"; +?> +--FILE-- +<?php +include "php_cli_server.inc"; +php_cli_server_start('var_dump($_SERVER["CONTENT_TYPE"], $_SERVER["CONTENT_LENGTH"])'); +echo file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS); +?> +--EXPECTF-- +NULL +NULL diff --git a/sapi/cli/tests/bug66606_2.phpt b/sapi/cli/tests/bug66606_2.phpt new file mode 100644 index 0000000000..9f539873e1 --- /dev/null +++ b/sapi/cli/tests/bug66606_2.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE) - POST request +--INI-- +allow_url_fopen=1 +--SKIPIF-- +<?php +include "skipif.inc"; +?> +--FILE-- +<?php +include "php_cli_server.inc"; +php_cli_server_start('var_dump($_SERVER["CONTENT_TYPE"], $_SERVER["CONTENT_LENGTH"])'); + +list($host, $port) = explode(':', PHP_CLI_SERVER_ADDRESS); +$port = intval($port)?:80; + +$fp = fsockopen($host, $port, $errno, $errstr, 0.5); +if (!$fp) { + die("connect failed"); +} + +if (fwrite($fp, <<<HEADER +POST /index.php HTTP/1.1 +Host: {$host} +Content-Type: application/x-www-form-urlencoded +Content-Length: 3 + +a=b +HEADER +)) { + while (!feof($fp)) { + echo fgets($fp); + } +} + +fclose($fp); +?> +--EXPECTF-- +HTTP/1.1 200 OK +Host: %s +Connection: close +X-Powered-By: PHP/%s +Content-type: text/html; charset=UTF-8 + +string(33) "application/x-www-form-urlencoded" +string(1) "3" |