#38040 [Bgs->Opn]: php_self incorrect in cgi mode
ID: 38040
User updated by: php at jon dot limedaley dot com
Reported By: php at jon dot limedaley dot com
-Status: Bogus
+Status: Open
Bug Type: CGI related
Operating System: Debian Linux testing
PHP Version: 5.2.0
New Comment:
What line are you referring to? I assume you are talking about
cgi.fixpathinfo, but that isn't included in the dist in 5.2.
~/php5.2-200607082030>grep cgi php.ini-dist
; cgi.force_redirect configuration below
; cgi.force_redirect is necessary to provide security running PHP as a
CGI under
; cgi.force_redirect = 1
; if cgi.nph is enabled it will force cgi to always sent Status: 200
with
; cgi.nph = 1
; if cgi.force_redirect is turned on, and you are not running under
Apache or Netscape
; cgi.redirect_status_env = ;
; security context that the request runs under. mod_fastcgi under
Apache
; fastcgi.impersonate = 1;
; fastcgi.log = 0
; cgi.rfc2616_headers configuration option tells PHP what type of
headers to
;cgi.rfc2616_headers = 0
The behavior of fixpathinfo = 1 (I believe this is the recommended
setting, right?) doesn't do what I think it should. I was asking for
confirmation that you want PATH_INFO to be null. ORIG_PATH_TRANSLATED
is strange, I don't have any idea what that would be used for.
ORIG_PATH_INFO looks good, and what I would have expected PATH_INFO to
be set to.
I wouldn't expect ORIG_PATH_INFO to be used for "real" scripts, ie. I
shouldn't check it into the OSS packages I work on.
Can you tell me what you would expect PHP_SELF and PATH_INFO to be in
this URL:
http://jon.limedaley.com/misc/test.php5/asd
I think it should be:
PHP_SELF: /misc/test.php5
PATH_INFO: /asd
instead of
PHP_SELF: /misc/test.php5
PATH_INFO: NULL
with fixpathinfo=1
and
PHP_SELF: /asd
PATH_INFO: /asd
with fixpathinfo=0
Do you agree?
Previous Comments:
------------------------------------------------------------------------
[2006-07-19 22:51:12] sniper@php.net
Read the php.ini-dist and search the cgi.* entries. This is not a bug.
------------------------------------------------------------------------
[2006-07-16 00:47:53] php at jon dot limedaley dot com
I have reverted to the debian install package since I haven't heard
anything. Should be pretty easy to reproduce. If you want any help
debugging it, you can let me know.
------------------------------------------------------------------------
[2006-07-09 00:17:37] php at jon dot limedaley dot com
Ok, I got the 5.2.0 snapshot as you requested.
It still seems broken to me if cgi.fix_pathinfo is turned on, which I
believe is the default, and necessary to make $_SERVER['PHP_SELF']
return the correct value.
Is it correct for PATH_INFO to be not defined, when ORIG_PATH_INFO was
correct?
Looking at the source, it seems that PATH_INFO is miscalculated because
PATH_TRANSLATED is incorrect? But, I am not at all sure what
PATH_TRANSLATED is supposed to be.
See here:
http://jon.limedaley.com/misc/test.php5/asd
What do you think
PHP_SELF
PATH_INFO
PATH_TRANSLATED
should be?
What if cgi.fix_pathinfo were not defined, then what should those
values be?
Maybe I am just not understanding how it is designed to work.
------------------------------------------------------------------------
[2006-07-08 20:47:48] tony2001@php.net
>now seems that php5 is alright
Then please change the version in the report and try 4.4.x snapshot
from http://snaps.php.net instead of some third-party build.
------------------------------------------------------------------------
[2006-07-08 20:35:19] php at jon dot limedaley dot com
var_dumps can be found here:
http://jon.limedaley.com/misc/test.php
http://jon.limedaley.com/misc/test.php5
http://jon.limedaley.com/misc/test.php/asd
http://jon.limedaley.com/misc/test.php5/asd
I have been working on seeing if there was a workaround for this, and
it now seems that php5 is alright, but php4 has the wrong data. I am
quite confused, as I looked at this a week or two ago and the behavior
was different. There was a debian upgrade to php4 recently, but I
didn't see anything interesting in the changelog.
cgi.fixpathinfo is not defined for php4 or php5, which I think defaults
to 0 for php4 and 1 for php5?
Does php_self and path_info look how you think it should for the four
URLs above?
I think they look alright for php5, but test.php/asd seems to have
php_self set incorrectly?
------------------------------------------------------------------------
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/38040
--
Edit this bug report at http://bugs.php.net/?id=38040&edit=1
Thread (9 messages)