|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #76082 Http response status not working in 7.2.3 NTS fastcgi with header call
Submitted: 2018-03-12 15:20 UTC Modified: 2018-04-11 18:46 UTC
From: Assigned:
Status: Closed Package: CGI/CLI related
PHP Version: 7.2.3 OS: Windows
Private report: No CVE-ID: None
 [2018-03-12 15:20 UTC]
64 bit Windows Server 2016

PHP 7.1.1

header('HTTP/1.1 403 Forbidden');

Works perfectly - 403 status provided

PHP 7.2.3

header('HTTP/1.1 403 Forbidden');

Status returned is 200 OK


status returned is 403 Forbidden

If you call the header and THEN call the http_response_code it still returns the 200 OK instead of the 403

So something is broken using headers to set response codes with fastcgi only in PHP 7.2


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2018-03-12 15:24 UTC] spam2 at rhsoft dot net
header('HTTP/1.1 403 Forbidden', true, 403);
 [2018-03-12 15:31 UTC] auroraeosrose at gmail dot com
I tried that - it doesn't work either 

Entire script currently on system

// header('HTTP/1.1 403 Forbidden'); // doesn't work
//header('HTTP/1.1 403 Forbidden', true, 403); // doesn't work
http_response_code(403); // works, but not if you uncomment either earlier line
 [2018-03-12 17:47 UTC] auroraeosrose at gmail dot com
I just did some additional testing

This was introduced in 7.2.3 
7.2.2 functions perfectly
 [2018-03-13 03:54 UTC]
Can you reproduce from cli?


$ cat g
header('HTTP/1.1 403 Forbidden', true, 403);

$ /usr/local/bin/php-cgi g
Status: 403 Forbidden
X-Powered-By: PHP/7.2.4-dev
Content-type: text/html; charset=UTF-8

I don't see any changes in 7.2.3 that would cause this unless it is a weird Windows-only side-effect of an unrelated bug fix.
 [2018-03-13 09:35 UTC]
Same output here on CLI as Rasmus has shown. NGINX+FCGI through TCP socket as well as IIS through named pipe are same. Probably some further digging on the server config side is needed, seems something about server config right now.

 [2018-03-13 12:28 UTC] auroraeosrose at gmail dot com
It works correctly via cli and php-cgi via command line

It's ONLY erroring using fastcgi with IIS 10 64 bit with an NTS build!

I just tried a TS build of 7.2.3 and THAT works

I'm using the exact same configuration with only one change (swapping php-cgi.exe to a different sub-folder where PHP is stored) no other changes to the server or configuration

This is the weirdest thing in the world.
 [2018-03-13 12:36 UTC]
-Summary: Http response status not working in 7.2 with header call +Summary: Http response status not working in 7.2.3 NTS fastcgi with header call
 [2018-03-13 12:36 UTC]
Verified this is some kind of threading/build problem
added that is only affects 7.2.3 NTS in fastcgi mode
thread safe compile of 7.2.3 is working
 [2018-03-14 11:50 UTC]
Hmm, then I stuck probably, as the checks I did before was exactly with NTS. However it was the current dev, perhaps that makes the diff :/

 [2018-03-15 16:55 UTC]
Yeah, if you were testing with the current dev build and not the binary in downloads for 7.2.3 64 bit nts from you might not hit the issue.

If I have time later this week I'll test with a snapshot build and see if it's fixed.  However shipping a broken binary isn't great either.
 [2018-04-11 18:46 UTC]
-Status: Open +Status: Closed
 [2018-04-11 18:46 UTC]
This is no longer an issue in 7.4
Definitely a bad 7.3-nts release
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Wed Aug 04 04:01:24 2021 UTC