php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #45645 eval causes "Internal Server Error"
Submitted: 2008-07-28 13:58 UTC Modified: 2008-07-29 17:27 UTC
From: sergey89 at gmail dot com Assigned:
Status: Not a bug Package: PHP options/info functions
PHP Version: 5.2.6 OS: Debian GNU/Linux 4.0r3
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: sergey89 at gmail dot com
New email:
PHP Version: OS:

 

 [2008-07-28 13:58 UTC] 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

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-07-28 14:39 UTC] sergey89 at gmail dot com
After eval() script continues executing normally and I see expected result on the page.
 [2008-07-28 20:07 UTC] jani@php.net
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-29 11:14 UTC] 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-29 17:27 UTC] lbarnaud@php.net
In the first example the headers has already been sent (due to ob_flush()), so PHP can't set the HTTP status code.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Jul 02 05:01:42 2025 UTC