#21226 [Bgs]: function parse_url() fails

From: 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

« previous php.bugs (#28586) next »