[PHP-DEV] PHP 4.0 Bug #6919 Updated: URL parameter decoding
ID: 6919 Updated by: sniper Reported By: [EMAIL PROTECTED] Old-Status: Feedback Status: Closed Bug Type: PWS related Assigned To: Comments: No feedback. If this happens with soon to be released PHP 4.0.5 too, reopen this bug report. Although this migth be PWS specific thing. In which case you should change the webserver used. --Jani Previous Comments: --- [2001-02-25 07:33:14] [EMAIL PROTECTED] Does the problem persist with PHP 4.0.4pl1 or the latest snapshot from http://snaps.php.net/? --- [2000-12-12 11:43:51] [EMAIL PROTECTED] User repors it being PWS. --- [2000-12-12 05:55:11] [EMAIL PROTECTED] Which webserver is it? --- [2000-09-28 03:40:20] [EMAIL PROTECTED] My server is configured to retrieve a file called "index.php" by default. Thus the following two URLs should give the same result: (1) http://.../index.php?a=b&c=d (2) http://.../?a=b&c=d The statement... ...results in: (1) a[b] c[d] (2) a[] c[] Thus, the parameters seem not to be decoded correctly in the second case. Test with HTTP_GET_VARS show the same effect. I use the precompiled windows version as found in the download section. And here is my "php.ini": [PHP] ;;; ; About this file ; ;;; ; This file controls many aspects of PHP's behavior. In order for PHP to ; read it, it must be named 'php.ini'. PHP looks for it in the current ; working directory, in the path designated by the environment variable ; PHPRC, and in the path that was defined in compile time (in that order). ; Under Windows, the compile-time path is the Windows directory. The ; path in which the php.ini file is looked for can be overriden using ; the -c argument in command line mode. ; ; The syntax of the file is extremely simple. Whitespace and Lines ; beginning with a semicolon are silently ignored (as you probably guessed). ; Section headers (e.g. [Foo]) are also silently ignored, even though ; they might mean something in the future. ; ; Directives are specified using the following syntax: ; directive = value ; Directive names are *case sensitive* - foo=bar is different from FOO=bar. ; ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression ; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo"). ; ; Expressions in the INI file are limited to bitwise operators and parentheses: ; | bitwise OR ; & bitwise AND ; ~ bitwise NOT ; ! boolean NOT ; ; Boolean flags can be turned on using the values 1, On, True or Yes. ; They can be turned off using the values 0, Off, False or No. ; ; An empty string can be denoted by simply not writing anything after the equal ; sign, or by using the None keyword: ; ; foo = ; sets foo to an empty string ; foo = none ; sets foo to an empty string ; foo = "none"; sets foo to the string 'none' ; ; If you use constants in your value, and these constants belong to a dynamically ; loaded extension (either a PHP extension or a Zend extension), you may only ; use these constants *after* the line that loads the extension. ; ; All the values in the php.ini-dist file correspond to the builtin ; defaults (that is, if no php.ini is used, or if you delete these lines, ; the builtin defaults will be identical). ; Language Options ; engine = On ; Enable the PHP scripting language engine under Apache short_open_tag = On ; allow the tags are recognized. asp_tags= Off ; allow ASP-style <% %> tags precision = 14 ; number of significant digits displayed in floating point numbers y2k_compliance = Off ; whether to be year 2000 compliant (will cause problems with non y2k compliant browsers) output_buffering= Off ; Output buffering allows you to send header lines (including cookies) ; even after you send body content, in the price of slowing PHP's ; output layer a bit. ; You can enable output buffering by in runtime by calling the output ; buffering functions, or enable output buffering for all files ; by setting this directive to On. imp
[PHP-DEV] PHP 4.0 Bug #6919 Updated: URL parameter decoding
ID: 6919 Updated by: sbergmann Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Feedback Bug Type: PWS related Assigned To: Comments: Does the problem persist with PHP 4.0.4pl1 or the latest snapshot from http://snaps.php.net/? Previous Comments: --- [2000-12-12 11:43:51] [EMAIL PROTECTED] User repors it being PWS. --- [2000-12-12 05:55:11] [EMAIL PROTECTED] Which webserver is it? --- [2000-09-28 03:40:20] [EMAIL PROTECTED] My server is configured to retrieve a file called "index.php" by default. Thus the following two URLs should give the same result: (1) http://.../index.php?a=b&c=d (2) http://.../?a=b&c=d The statement... ...results in: (1) a[b] c[d] (2) a[] c[] Thus, the parameters seem not to be decoded correctly in the second case. Test with HTTP_GET_VARS show the same effect. I use the precompiled windows version as found in the download section. And here is my "php.ini": [PHP] ;;; ; About this file ; ;;; ; This file controls many aspects of PHP's behavior. In order for PHP to ; read it, it must be named 'php.ini'. PHP looks for it in the current ; working directory, in the path designated by the environment variable ; PHPRC, and in the path that was defined in compile time (in that order). ; Under Windows, the compile-time path is the Windows directory. The ; path in which the php.ini file is looked for can be overriden using ; the -c argument in command line mode. ; ; The syntax of the file is extremely simple. Whitespace and Lines ; beginning with a semicolon are silently ignored (as you probably guessed). ; Section headers (e.g. [Foo]) are also silently ignored, even though ; they might mean something in the future. ; ; Directives are specified using the following syntax: ; directive = value ; Directive names are *case sensitive* - foo=bar is different from FOO=bar. ; ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression ; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo"). ; ; Expressions in the INI file are limited to bitwise operators and parentheses: ; | bitwise OR ; & bitwise AND ; ~ bitwise NOT ; ! boolean NOT ; ; Boolean flags can be turned on using the values 1, On, True or Yes. ; They can be turned off using the values 0, Off, False or No. ; ; An empty string can be denoted by simply not writing anything after the equal ; sign, or by using the None keyword: ; ; foo = ; sets foo to an empty string ; foo = none ; sets foo to an empty string ; foo = "none"; sets foo to the string 'none' ; ; If you use constants in your value, and these constants belong to a dynamically ; loaded extension (either a PHP extension or a Zend extension), you may only ; use these constants *after* the line that loads the extension. ; ; All the values in the php.ini-dist file correspond to the builtin ; defaults (that is, if no php.ini is used, or if you delete these lines, ; the builtin defaults will be identical). ; Language Options ; engine = On ; Enable the PHP scripting language engine under Apache short_open_tag = On ; allow the tags are recognized. asp_tags= Off ; allow ASP-style <% %> tags precision = 14 ; number of significant digits displayed in floating point numbers y2k_compliance = Off ; whether to be year 2000 compliant (will cause problems with non y2k compliant browsers) output_buffering= Off ; Output buffering allows you to send header lines (including cookies) ; even after you send body content, in the price of slowing PHP's ; output layer a bit. ; You can enable output buffering by in runtime by calling the output ; buffering functions, or enable output buffering for all files ; by setting this directive to On. implicit_flush = Off ; Implicit flush tells PHP to tell the output layer to flush itself ; automatically after every output block. This is equivalent to ; calling the PHP function flush() after ea