laruence Sun, 11 Mar 2012 08:56:14 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=324098
Log: Implemented FR #60850 (Built in web server does not set $_SERVER['SCRIPT_FILENAME'] when using router) Bug: https://bugs.php.net/60850 (Open) Built in web server does not set $_SERVER['SCRIPT_FILENAME'] when using router Changed paths: U php/php-src/branches/PHP_5_4/NEWS U php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c A php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_017.phpt U php/php-src/trunk/sapi/cli/php_cli_server.c A php/php-src/trunk/sapi/cli/tests/php_cli_server_017.phpt Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2012-03-11 08:41:40 UTC (rev 324097) +++ php/php-src/branches/PHP_5_4/NEWS 2012-03-11 08:56:14 UTC (rev 324098) @@ -4,6 +4,8 @@ - CLI Server: . "Connection: close" instead of "Connection: closed" (Gustavo) + . Implemented FR #60850 (Built in web server does not set + $_SERVER['SCRIPT_FILENAME'] when using router). (Laruence) - Core: . Fixed bug #61225 (Incorect lexing of 0b00*+<NUM>). (Pierrick) Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c =================================================================== --- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c 2012-03-11 08:41:40 UTC (rev 324097) +++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c 2012-03-11 08:56:14 UTC (rev 324098) @@ -599,6 +599,11 @@ sapi_cli_server_register_variable(track_vars_array, "SCRIPT_NAME", client->request.vpath TSRMLS_CC); if (SG(request_info).path_translated) { sapi_cli_server_register_variable(track_vars_array, "SCRIPT_FILENAME", SG(request_info).path_translated TSRMLS_CC); + } else if (client->server->router) { + char *temp; + spprintf(&temp, 0, "%s/%s", client->server->document_root, client->server->router); + sapi_cli_server_register_variable(track_vars_array, "SCRIPT_FILENAME", temp TSRMLS_CC); + efree(temp); } if (client->request.path_info) { sapi_cli_server_register_variable(track_vars_array, "PATH_INFO", client->request.path_info TSRMLS_CC); Added: php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_017.phpt =================================================================== --- php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_017.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/sapi/cli/tests/php_cli_server_017.phpt 2012-03-11 08:56:14 UTC (rev 324098) @@ -0,0 +1,44 @@ +--TEST-- +Implement Req #60850 (Built in web server does not set $_SERVER['SCRIPT_FILENAME'] when using router) +--SKIPIF-- +<?php +include "skipif.inc"; +?> +--FILE-- +<?php +include "php_cli_server.inc"; +php_cli_server_start(<<<PHP +var_dump(\$_SERVER['SCRIPT_FILENAME']); +PHP +); + +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 / HTTP/1.1 +Host: {$host} + + +HEADER +)) { + while (!feof($fp)) { + echo fgets($fp); + } +} + +fclose($fp); +?> +--EXPECTF-- +HTTP/1.1 200 OK +Host: %s +Connection: close +X-Powered-By: %s +Content-type: text/html + +string(%d) "%s/tests/index.php" Modified: php/php-src/trunk/sapi/cli/php_cli_server.c =================================================================== --- php/php-src/trunk/sapi/cli/php_cli_server.c 2012-03-11 08:41:40 UTC (rev 324097) +++ php/php-src/trunk/sapi/cli/php_cli_server.c 2012-03-11 08:56:14 UTC (rev 324098) @@ -599,6 +599,11 @@ sapi_cli_server_register_variable(track_vars_array, "SCRIPT_NAME", client->request.vpath TSRMLS_CC); if (SG(request_info).path_translated) { sapi_cli_server_register_variable(track_vars_array, "SCRIPT_FILENAME", SG(request_info).path_translated TSRMLS_CC); + } else if (client->server->router) { + char *temp; + spprintf(&temp, 0, "%s/%s", client->server->document_root, client->server->router); + sapi_cli_server_register_variable(track_vars_array, "SCRIPT_FILENAME", temp TSRMLS_CC); + efree(temp); } if (client->request.path_info) { sapi_cli_server_register_variable(track_vars_array, "PATH_INFO", client->request.path_info TSRMLS_CC); Added: php/php-src/trunk/sapi/cli/tests/php_cli_server_017.phpt =================================================================== --- php/php-src/trunk/sapi/cli/tests/php_cli_server_017.phpt (rev 0) +++ php/php-src/trunk/sapi/cli/tests/php_cli_server_017.phpt 2012-03-11 08:56:14 UTC (rev 324098) @@ -0,0 +1,44 @@ +--TEST-- +Implement Req #60850 (Built in web server does not set $_SERVER['SCRIPT_FILENAME'] when using router) +--SKIPIF-- +<?php +include "skipif.inc"; +?> +--FILE-- +<?php +include "php_cli_server.inc"; +php_cli_server_start(<<<PHP +var_dump(\$_SERVER['SCRIPT_FILENAME']); +PHP +); + +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 / HTTP/1.1 +Host: {$host} + + +HEADER +)) { + while (!feof($fp)) { + echo fgets($fp); + } +} + +fclose($fp); +?> +--EXPECTF-- +HTTP/1.1 200 OK +Host: %s +Connection: close +X-Powered-By: %s +Content-type: text/html + +string(%d) "%s/tests/index.php"
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php