ID: 47687 Updated by: j...@php.net Reported By: make dot fire at gmail dot com -Status: Open +Status: Feedback Bug Type: HTTP related Operating System: windows server 2008 PHP Version: 5.3CVS-2009-03-17 (snap) New Comment:
First of all, both of your examples work fine for me and produce the expected results. You did not mention what web server you are using? And exactly what PHP version are you using? Previous Comments: ------------------------------------------------------------------------ [2009-03-17 10:01:55] make dot fire at gmail dot com And, the workaround in #25044 is not working, the code: header("Location: http://www.php.net/"); header('HTTP/1.1 303 See Other'); or header("Location: http://www.php.net/"); header('HTTP/1.1 303 See Other', true, 303); will result same response header: HTTP/1.0 302 Found Location: http://www.php.net/ ------------------------------------------------------------------------ [2009-03-17 09:54:21] make dot fire at gmail dot com Description: ------------ This bug is identical to bug #25044. When setting the "Location" HTTP header using the header() function, PHP automatically changes the HTTP response status to "302 Found", Whether other status codes is already set or not. Reproduce code: --------------- file1.php: <?php header('HTTP/1.1 201 Created'); header("Location: http://www.php.net/"); exit; ?> file2.php: <?php header('HTTP/1.1 303 See Other'); header("Location: http://www.php.net/"); exit; ?> Expected result: ---------------- HTTP Response: file1.php: HTTP/1.1 201 Created Location: http://www.php.net/ file2.php: HTTP/1.1 303 See Other Location: http://www.php.net/ Actual result: -------------- HTTP Response: file1.php: HTTP/1.0 302 Found Location: http://www.php.net/ file2.php: HTTP/1.0 302 Found Location: http://www.php.net/ ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47687&edit=1