ID: 43256
Updated by: [EMAIL PROTECTED]
Reported By: carsten_sttgt at gmx dot de
-Status: Open
+Status: Feedback
Bug Type: IIS related
Operating System: Windows_NT
PHP Version: 5.2.5
New Comment:
Okay, I'm a bit confused now. Where are you reporting the bug? In ISAPI
or CGI?
Previous Comments:
------------------------------------------------------------------------
[2007-11-19 01:27:26] carsten_sttgt at gmx dot de
> There's also this setting:
> ; cgi.nph = 1
There is no difference:
| D:\PHP>cat nph-test.php
| <?php
| header('Location: http://www.example.com/', true, 303);
| ?>
|
| D:\PHP>pear-request -r 0 -S -o http://localhost/phpinfo.php |\
| grep -E "cgi.rfc2616_headers|cgi.nph"
| cgi.nph11
| cgi.rfc2616_headers11
|
| D:\PHP>pear-request -r 0 -S http://localhost/nph-test.php
| GET http://localhost/nph-test.php --> ERROR: Malformed response
BTW:
This setting is only available with CGI, but not with ISAPI.
Regards,
Carsten
------------------------------------------------------------------------
[2007-11-17 22:20:49] [EMAIL PROTECTED]
There's also this setting:
; cgi.nph = 1
Try to turn that off / on.
------------------------------------------------------------------------
[2007-11-17 12:03:15] carsten_sttgt at gmx dot de
> what is this set in your php.ini: cgi.rfc2616_headers = 0
Now you address the NPH-CGI issue. Correct, my first tests was with
"0". Now with "1":
| D:\PHP>pear-request -r 0 -S -o http://localhost/phpinfo.php |\
| grep "cgi.rfc2616_headers"
| cgi.rfc2616_headers11
with Testscript 1:
------------------
| D:\PHP>pear-request -r 0 -S http://localhost/nph-test.php
| GET http://localhost/nph-test.php --> 303 See Other
Works now. (thanks for the hint)
with Testscript 2:
------------------
| D:\PHP>pear-request -r 0 -S http://localhost/nph-test.php
| GET http://localhost/nph-test.php --> ERROR: Malformed response
Don't work.
So we have a similar result as with ISAPI. There is only a correct
result, if you also explicitly set the "Status" header. Only setting the
"Location" header with the code parameter does not work correctly.
Regards,
Carsten
------------------------------------------------------------------------
[2007-11-16 12:46:58] [EMAIL PROTECTED]
what is this set in your php.ini:
cgi.rfc2616_headers = 0
(look in the phpinfo() output!)
------------------------------------------------------------------------
[2007-11-12 17:59:53] carsten_sttgt at gmx dot de
> What are you using exactly with IIS?
> PHP FastCGI binary or ISAPI module?
As you can see in the examples: both. Or in other words: I can't know,
if a script is used with ISAPI or CGI on a customer installation.
> note: Only former is really useful/working properly)
But this is only true for PHP. Why? With other scripting languages, I
have no problem to set this header via ISAPI.
And with PHP/ISAPI there is only one problem:
I must use first a header() call to set the status, and then I can use
header() with location.
| header('HTTP/1.0 303 See Other');
| header('Location: http://www.example.com/');
(The first header() call is normaly only necessary, if I want change
the default reason phrase)
But what ever happens in the PHP core during the first header call,
should also done from PHP, if I use the status parameter in header()
(like it works with Apache):
| header('Location: http://www.example.com/', true, 303);
Regarding PHP/CGI:
A CGI which want set/use it't own headers (not parsed from the server),
must have a script name which starts with "nph-" (that's not only true
for IIS, also for other webservers). But if the name from a PHP script
is e.g. "nph-test.php", there is no correct output at all.
(as before, with other scripting languages, this works without
problems.)
(Or all together: With other scripting languages I use the same
documented command(s) to set the header on all webservers in the same
way. Only with CGI I must rename the script. With PHP the same command
does work different on different webserver and nph-CGI does't work at
all.)
Regards,
Carsten
------------------------------------------------------------------------
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/43256
--
Edit this bug report at http://bugs.php.net/?id=43256&edit=1