Edit report at https://bugs.php.net/bug.php?id=50921&edit=1

 ID:                 50921
 Comment by:         kwintersnc at gmail dot com
 Reported by:        phpbug at starurl dot com
 Summary:            '200 OK' HTTP status despite PHP error
 Status:             Not a bug
 Type:               Bug
 Package:            HTTP related
 Operating System:   *
 PHP Version:        5.2.12
 Block user comment: N
 Private report:     N

 New Comment:

According to http://bugs.xdebug.org/view.php?id=587 this is fixed in PHP 5.4, 
so 
"Not a bug" isn't correct.


Previous Comments:
------------------------------------------------------------------------
[2013-04-13 19:01:39] matteosistisette at gmail dot com

The status is wrong. And oh my god, since 2010!!

This IS a bug.

Display_errors off means don't DISPLAY errors, it shouldn't have any effect on 
the response code.

Default response for fatal errors should be 500 whether or not display_errors 
is 
turned on.

------------------------------------------------------------------------
[2010-11-19 11:48:27] dean at deansas dot org

> The reason why display errors needs to be turned of, is because
> displayed errors generate output, and output causes the headers 
> to be send out. I'm afraid we can't do much about this.

Can't PHPs error handling first set a 500 header and then output
error messages as appropriate? 

It doesn't seem to me like this is something that can never ever be fixed

------------------------------------------------------------------------
[2010-08-12 15:40:32] tyra3l at gmail dot com

It's seems that this is a known bug in the xdebug, see:
http://bugs.xdebug.org/view.php?id=587

but couldn't fix it without making some changes in php itself:

"Before I can address this, there need to be some changes in PHP itself. It 
doesn't expose some required information to extensions yet that I will need."

I hope this get fixed soon.

Tyrael

------------------------------------------------------------------------
[2010-08-12 15:35:41] tyra3l at gmail dot com

I can reproduce the problem.
I found out, that if I enable xdebug, then I get header 200, if I disable it, 
then 
it's 500.
Will report it to Derick.

Tyrael

------------------------------------------------------------------------
[2010-03-12 08:37:24] anzenews at volja dot net

I am also having huge problems with this - haproxy health checks do not work 
reliably because of this bug. Please consider reopening it - it is not bogus.

PHP doesn't return HTTP error code, even if display_errors is set to 0. One 
example:
<?
  ini_set('display_errors',0);
  this_function_does_not_exist();
  echo "ok";
?>

This returns an empty page with status code 200:
-----
HTTP/1.1 200 OK
Date    Fri, 12 Mar 2010 07:27:15 GMT
Server  Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny6 with Suhosin-Patch
X-Powered-By    PHP/5.2.6-1+lenny6
Vary    Accept-Encoding
Content-Encoding        gzip
Content-Length  20
Keep-Alive      timeout=15, max=100
Connection      Keep-Alive
Content-Type    text/html
-----

Content-Length is 20, probably because of gzip? There are no spaces around PHP 
block in source code.

I have checked phpinfo() and display_errors is set to Off, so there is no error 
there. Also, I have tried setting it in php.ini - no change.

Another problem: parse errors are also not handled correctly (even if 
display_errors is set to 0 in php.ini). See previous poster's example. 

Thanks!

------------------------------------------------------------------------


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

    https://bugs.php.net/bug.php?id=50921


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=50921&edit=1

Reply via email to