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