#21226 [Bgs]: function parse_url() fails
| From: | dev at lechat dot org | Date: | Sat, 28 Dec 2002 15:10:25 +0000 |
| Subject: | #21226 [Bgs]: function parse_url() fails | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-28586@lists.php.net to get a copy of this message | ||
ID: 21226
User updated by: dev@lechat.org
Reported By: dev@lechat.org
Status: Bogus
Bug Type: *URL Functions
Operating System: w2000
PHP Version: 4.3.0
Assigned To: iliaa
New Comment:
Thank you for your works on my report, but I'm suprised you pass this
report as bogus since :
- 'port' was not number in my example, but it was only to be more
comprehensive. Warning is the same with a digit port.
- Same example was working successfully without warning in 4.2 and
previous.
- parse_url function manual doesn't tell about trailing slashes before
path or query part of url (I triple check ;-)
- RFC 2396 (Uniform Resource Identifiers (URI): Generic Syntax) doesn't
specify that you *MUST* have / after port part.
So if you consider these points, either you should modify parse_url
function or modify parse_url documentation. But please do not just pass
report as bogus!!!
At worst put it a 'closed'.
Thanks for your help.
Previous Comments:
------------------------------------------------------------------------
[2002-12-28 00:39:43] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Port can only be a numeric number from 0-99999, although in reality the
port range is from 1-65535, clearly a non numeric port number is not
valid, hence invalidating the passed URL.
The 2nd example is also wrong, without the '/' between the port & the
rest of the request the code MUST assume that the following data is
part of the port, hence the URL is not valid once again.
This is NOT a bug.
------------------------------------------------------------------------
[2002-12-27 19:21:59] dev@lechat.org
Add / after end of port part is a good solution. Thanks.
Do you consider that it's a bug or parse_url is url RFC compliant ?
------------------------------------------------------------------------
[2002-12-27 19:04:18] dev@lechat.org
Seems to come from 'port' part of url.
If we consider this :
user:password@host?foo
works fine,
user:password@host:port?foo
fails
but
user:password@host?foo:port
works and returns port number in $p_url[port] but it's not correct
------------------------------------------------------------------------
[2002-12-27 19:00:53] edink@php.net
Some more info: port has to be numeric and less than 5 digits long.
The bug part seems to be that parse_url() doesn't recognize the end of
port part if '/' is missing. So
$url="http://user:password@host.dom.gtld:80/?foo";
works as expected.
------------------------------------------------------------------------
[2002-12-27 18:49:37] edink@php.net
Verified on Windows and Linux ZTS builds.
Assigning to Ilia.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/21226
--
Edit this bug report at http://bugs.php.net/?id=21226&edit=1