ID: 43256 User updated by: carsten_sttgt at gmx dot de Reported By: carsten_sttgt at gmx dot de -Status: Feedback +Status: Open Bug Type: IIS related Operating System: Windows_NT PHP Version: 5.2.5 New Comment:
> 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 Previous Comments: ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ [2007-11-12 11:23:51] [EMAIL PROTECTED] What are you using exactly with IIS? PHP FastCGI binary or ISAPI module? (note: Only former is really useful/working properly) ------------------------------------------------------------------------ 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