Bug #55780 [Com]: $_SERVER['REQUEST_URI'] does not contain the request's complete URI

From: Date: Sun, 26 Jan 2014 03:09:41 +0000
Subject: Bug #55780 [Com]: $_SERVER['REQUEST_URI'] does not contain the request's complete URI
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-184009@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=55780&edit=1 ID: 55780 Comment by: chealer at gmail dot com Reported by: chealer at gmail dot com Summary: $_SERVER['REQUEST_URI'] does not contain the request's complete URI Status: Not a bug Type: Bug Package: *General Issues PHP Version: Irrelevant Block user comment: N Private report: N New Comment: Being usually true wouldn't make it *true*, but even then, see the Apache link above. In any case, sorry to repeat myself, but this should probably be treated as a documentation bug, and just cause the $_SERVER documentation to fix the entry description, adding a warning about the name. Previous Comments: ------------------------------------------------------------------------ [2014-01-03 19:57:16] rasmus@php.net That's only for cases where PHP is running in an environment where it isn't set. In those cases we set it correctly. The majority of users run PHP under either Apache or nginx these days, so for the majority of users PHP has nothing to do with setting this variable. ------------------------------------------------------------------------ [2013-12-30 01:30:05] chealer at gmail dot com Hi Rasmus, It depends on what you mean by "PHP". If you mean the interpreter itself, this is arguably not a bug. But as I wrote, this should probably be treated as a documentation bug, and just cause the $_SERVER documentation to fix the entry description, adding a warning about the name. Apache documentation gives the following descriptions for REQUEST_URI: Request_URI - the resource requested on the HTTP request line -- generally the portion of the URL following the scheme and host portion without the query string. See the RewriteCond directive of mod_rewrite for extra information on how to match your query string. The path part of the request's URI The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as as its own variable named QUERY_STRING. PHP itself gives the following: REQUEST_URI uri section following the domain:port part of a URI That being said, note that while $_SERVER is indeed based on environment variables, it is far from coming directly from the web server. Here are a few reference points: http://lxr.php.net/s?n=25&start=50&sort=relevancy&q=REQUEST_URI&project=PHP_5_5 http://lxr.php.net/xref/PHP_5_5/sapi/apache/mod_php5.c http://lxr.php.net/xref/PHP_5_5/main/php_variables.c http://lxr.php.net/xref/PHP_5_5/sapi/cgi/cgi_main.c ------------------------------------------------------------------------ [2013-12-16 04:57:53] rasmus@php.net It is not a bug, at least not in PHP, because PHP has nothing to do with setting this. It comes directly from your web server. We simply populate the $_SERVER array with whatever your web server has put into the environment. ------------------------------------------------------------------------ [2013-12-15 18:23:13] chealer at gmail dot com Hi Michael, It is arguably not a bug per se that $_SERVER['REQUEST_URI'] does not contain the request's URI. One might argue the name is simply misleading. However, there is unarguably a bug as long as the documentation claims REQUEST_URI contains the URI. As I wrote: "At this point, it is probably a bad idea to simply fix. This should probably be treated as a documentation bug, and just cause the $_SERVER documentation to fix the entry description, adding a warning about the name." ------------------------------------------------------------------------ [2013-12-06 07:25:32] mike@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 ------------------------------------------------------------------------ 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 https://bugs.php.net/bug.php?id=55780 -- Edit this bug report at https://bugs.php.net/bug.php?id=55780&edit=1

« previous php.bugs (#184009) next »