ID: 47687
User updated by: make dot fire at gmail dot com
Reported By: make dot fire at gmail dot com
-Status: Feedback
+Status: Open
Bug Type: HTTP related
Operating System: windows vista
PHP Version: 5.3CVS-2009-03-17 (snap)
New Comment:
I have tried using PHP 5.2 (5.2.10-dev), both VC6 x86 Non Thread Safe
(2009-Mar-18 00:00:00) and VC6 x86 Thread Safe (2009-Mar-18 00:00:00).
And have tried on windows vista and windows server 2008, got the same
results:
test code:
code1:
<?php
header('HTTP/1.1 303 See Other');
header("Location: http://www.php.net/");
exit;
?>
code2:
<?php
header('HTTP/1.1 303 See Other');
exit;
?>
code3:
<?php
header("Location: http://www.php.net/");
exit;
?>
the problem only occurs when run php in fastCGI mode(using
php-cgi.exe).
code1 produce status line:
HTTP/1.1 302 Redirect (expected: HTTP/1.1 303 See Other)
code2 porduct status line:
HTTP/1.1 303 See Other (expected: HTTP/1.1 303 See Other)
code3 product status line:
HTTP/1.1 302 Redirect (expected: HTTP/1.1 302 Moved Temporarily)
when run php in ISAPI mode(using php5isapi.dll) or run php-cgi.exe
under commend line, both test codes will produce expected result.
it seems that something wrong with header("Location: ") with CGI
mode...
Previous Comments:
------------------------------------------------------------------------
[2009-03-17 21:11:42] [email protected]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2009-03-17 14:30:46] make dot fire at gmail dot com
If change to ISAPI mode(use php5isapi.dll), the result is expected.
<?php
header('HTTP/1.1 303 See Other');
header("Location: http://www.php.net/");
exit;
?>
will got status line:
HTTP/1.1 303 See Other
------------------------------------------------------------------------
[2009-03-17 14:24:29] make dot fire at gmail dot com
when use this test code:
test.php:
<?php
header("Location: http://www.php.net/");
exit;
?>
use broswer to visit http://localhost/test.php, the status line in
response is:
HTTP/1.1 302 Redirect
and use php-cgi.exe under commend line get:
D:\project\www>php-cgi ./test.php
Status: 302 Moved Temporarily
Location: http://www.php.net/
Content-type: text/html; charset=utf-8
------------------------------------------------------------------------
[2009-03-17 14:13:28] make dot fire at gmail dot com
When run php-cgi.exe in command line, the result is expected:
D:\project\www>php-cgi ./test.php
Status: 303 See Other
Location: http://www.php.net/
Content-type: text/html; charset=utf-8
test.php:
<?php
header('HTTP/1.1 303 See Other');
header("Location: http://www.php.net/");
exit;
?>
but visit same file throuth browser and webserver (use
http://localhost/test.php) will get 302 status code.
------------------------------------------------------------------------
[2009-03-17 13:56:28] make dot fire at gmail dot com
I try to use the lastest snapshots (PHP 5.3 (5.3.0beta2-dev),VC9 x86
Non Thread Safe (2009-Mar-17 13:00:00)),got the same result.
some infomation from phpinfo():
System: Windows NT 6.0 build 6001 (Windows Vista Ultimate Edition
Service Pack 1) i586
Build Date: Mar 17 2009 12:55:17
Compiler: MSVC9 (Visual C++ 2008)
Architecture: x86
Server API: CGI/FastCGI
CGI section:
Directive Local Value Master Value
cgi.discard_path 0 0
cgi.fix_pathinfo 1 1
cgi.force_redirect 0 0
cgi.nph 0 0
cgi.redirect_status_env no value no value
cgi.rfc2616_headers 0 0
fastcgi.impersonate 1 1
fastcgi.logging 1 1
webserver is IIS7, PHP run in FastCGI mode(use php-cgi.exe).
I use HttpWatch to catch response header,
when use code:
<?php
header('HTTP/1.1 303 See Other');
header("Location: http://www.php.net/");
exit;
?>
the status line in response is:
HTTP/1.1 302 Redirect
and when use code:
<?php
header('HTTP/1.1 303 See Other');
exit;
?>
the status line in response is:
HTTP/1.1 303 See Other
------------------------------------------------------------------------
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/47687
--
Edit this bug report at http://bugs.php.net/?id=47687&edit=1