ID:               45645
 Updated by:       [EMAIL PROTECTED]
 Reported By:      sergey89 at gmail dot com
 Status:           Bogus
 Bug Type:         PHP options/info functions
 Operating System: Debian GNU/Linux 4.0r3
 PHP Version:      5.2.6
 New Comment:

In the first example the headers has already been sent (due to
ob_flush()), so PHP can't set the HTTP status code.


Previous Comments:
------------------------------------------------------------------------

[2008-07-29 11:14:27] sergey89 at gmail dot com

Where is the logic?

---
<?php
print 123;
ob_flush();
ini_set('display_errors', 0);
eval('aa|bb/cc');

Out: 123 and status 200

---
<?php
print 123;
ini_set('display_errors', 0);
eval('aa|bb/cc');

Out: 123 and status 500

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

[2008-07-28 20:07:52] [EMAIL PROTECTED]

Quite logically expected: You want to see errors -> errors are shown ->
http status is 200. In case there is nothing to output, you get 500.


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

[2008-07-28 14:39:17] sergey89 at gmail dot com

After eval() script continues executing normally and I see expected
result on the page.

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

[2008-07-28 13:58:10] sergey89 at gmail dot com

Description:
------------
I evaluate broken script with eval function. If display_errors is On i
get status 200 in http response, but if is Off i get status 500. It is
normal behaviour? error.log is empty.

Reproduce code:
---------------
<?php
ini_set('log_errors', 1);
ini_set('display_errors', 0);
eval('some)broken-code|');

Expected result:
----------------
HTTP/1.x 200 Ok

Actual result:
--------------
HTTP/1.x 500 Internal Server Error


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


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

Reply via email to