summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmb@php.net>2015-08-09 02:51:16 +0200
committerChristoph M. Becker <cmb@php.net>2015-08-09 02:51:16 +0200
commitfc69549593cb1ab4f9fa0fd41d74000cd4a98894 (patch)
tree26f6adb2bb229c062658b616f6f4be6742394bbd
parentcab75d8b00b6e86f6e2ede1ba3b3bd35518fc3bd (diff)
parent36cbb7cc4c7cd492394c62cd883c8e29d4f45760 (diff)
downloadphp-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.c3
-rw-r--r--sapi/cli/tests/bug66606_1.phpt17
-rw-r--r--sapi/cli/tests/bug66606_2.phpt46
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"