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] j...@php.net 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