[PHP-DEV] PHP 4.0 Bug #6919 Updated: URL parameter decoding

2001-04-10 Thread sniper

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

2001-02-25 Thread sbergmann

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