#43247 [Fbk->Csd]: PHP_SELF creates double path entry
| From: | yguardmail-php at yahoo dot co dot uk | Date: | Tue, 20 Nov 2007 14:35:45 +0000 |
| Subject: | #43247 [Fbk->Csd]: PHP_SELF creates double path entry | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-119885@lists.php.net to get a copy of this message | ||
ID: 43247
User updated by: yguardmail-php at yahoo dot co dot uk
Reported By: yguardmail-php at yahoo dot co dot uk
-Status: Feedback
+Status: Closed
Bug Type: CGI related
Operating System: Windows XP
PHP Version: 5.2.5
Assigned To: dmitry
New Comment:
Abyss claim to compy with CGI/1.1, as stated here :-
http://www.aprelium.com/data/doc/2/abyssws-win-doc-html/cgivars.html
'Before running a CGI application or interpreter, Abyss Web Server sets
its environment variables in conformity with the CGI/1.1 specification
(as described in http://hoohoo.ncsa.uiuc.edu/cgi)
....'.
PHP 5.2.3 works OK with the latest version of Abyss, so I can only
assume that some change in PHP 5.2.4 introduced the problem.
Thanks to Dan Voisine who has Emailed me with a solution to this in
Abyss :-
In Scripting Parameters, edit the Interpreter entry and change the Type
field from 'PHP Style' to 'Standard'.
Previous Comments:
------------------------------------------------------------------------
[2007-11-14 10:41:40] dmitry@php.net
According to http://ru2.php.net/reserved.variables PHP_SELF is
the
filename of the currently executing script, relative to the document
root. For instance, $_SERVER['PHP_SELF'] in a script at the address
http://example.com/test.php/foo.bar would be
/test.php/foo.bar.
According to http://hoohoo.ncsa.uiuc.edu/cgi/env.html
PATH_INFO - is
the extra path information, as given by the client. In other words,
scripts can be accessed by their virtual pathname, followed by extra
information at the end of this path. The extra information is sent as
PATH_INFO. This information should be decoded by the server if it comes
from a URL before it is passed to the CGI script.
However IIS use its own standard. According to
http://msdn2.microsoft.com/en-us/library/ms524602.aspx
PATH_INFO - is a
path information, as given by the client, for example,
"/vdir/myisapi.dll/zip". If this information comes from a URL, it is
decoded by the server before it is passed to the CGI script or ISAPI
filter.
If the AllowPathInfoForScriptMappings metabase property is set to true
(to support exclusive CGI functionality), PATH_INFO will only contain
"/zip" and ISAPI applications such as ASP will break.
However Abyss doesn't follow both standards. It sets PATH_INFO into the
value of SCRIPT_NAME and loses extra path information.
I am not going to fix the bug, while I don't understand what standarad
Abysse uses (It behave differently from Apache and IIS). This time I
suppose it is an Abysse bug, but I am ready for discussion.
------------------------------------------------------------------------
[2007-11-14 08:51:17] dmitry@php.net
The bug was fixed for IIS (not for Abysse) in 5.2.5.
Do you use older PHP version?
------------------------------------------------------------------------
[2007-11-14 01:23:16] jfrancis at connected dot net dot au
I am experiencing the exact same problem under IIS 5.1
Has there been any resolution to this problem?
------------------------------------------------------------------------
[2007-11-13 13:47:34] yguardmail-php at yahoo dot co dot uk
I am using the FREE version of Abyss which is available for download
from here :-
http://www.aprelium.com/abyssws/download.php
------------------------------------------------------------------------
[2007-11-13 13:33:50] dmitry@php.net
Sorry but Abyss version 2.5 is a comercial coftware and I am not able
to downlaod and test it.
------------------------------------------------------------------------
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/43247
--
Edit this bug report at http://bugs.php.net/?id=43247&edit=1