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

 ID:                 45592
 Comment by:         quamis at gmail dot com
 Reported by:        andy at boeckler dot org
 Summary:            eval'ed Code throws HTTP 500 error when
                     display_errors is off
 Status:             Bogus
 Type:               Bug
 Package:            Output Control
 Operating System:   Linux
 PHP Version:        5.2.6
 Block user comment: N

 New Comment:

I've ran into the same problem on 5.2.9. Because of an error in the
eval'd code(and the subsequent 500-Internal error generated), the
headers i was sending from my app would get misinterpreted by the
browser and would display a "File Not Found"...

I tracked this to a combination of "display_errors off" and the eval
function.


Previous Comments:
------------------------------------------------------------------------
[2008-07-23 09:52:47] andy at boeckler dot org

Why bogus?



This is by no means a consequent error-reporting.

------------------------------------------------------------------------
[2008-07-22 23:23:26] andy at boeckler dot org

"Changed error handler to send HTTP 500 instead of blank page on PHP

errors. "



1. I've never seen a blank page in PHP4, when i'm doing @eval !

2. Why does it work with display_errors on?

3. Why does it work, when i'm doing an "echo" BEFORE the @eval?

------------------------------------------------------------------------
[2008-07-22 23:12:52] j...@php.net

That's expected behavior. 



In PHP 5.2.4 NEWS:

"Changed error handler to send HTTP 500 instead of blank page on PHP
errors. "



And in the manual page for eval(): http://docs.php.net/eval



"If there is a parse error in the evaluated code, eval() returns FALSE
and execution of the following code continues normally. It is not
possible to catch a parse error in eval()  using set_error_handler()."



------------------------------------------------------------------------
[2008-07-22 22:53:10] andy at boeckler dot org

Sorry .. 

the code example goes in the wrong direction 

I've narrowed the actual issue. It has to do with evaled code.

The @eval-Function is not catched properly.



<?php

error_reporting(E_ALL & ~E_NOTICE);



class Test {

    function func1() { // HTTP 500                                      
                                                                        
                   

        ini_set('display_errors', 'off');

        @eval('completely wrong');

        echo 'boo'; exit();

    }

    function func2() { //HTTP 200                                       
                                                                        
                   

        ini_set('display_errors', 'on');

        @eval('completely wrong');

        echo 'boo'; exit();

    }

    function func3() { // HTTP 200  and HTTP 500 with output buffering  
                                                                        
                   

        ini_set('display_errors', 'off');

        echo 'noerror';

        @eval('completely wrong');

        echo 'boo'; exit();

    }

}



Test::func1();

//Test::func2();                                                        
                                                                        
                   

//Test::func3();                                                        
                                                                        
                   

?>

------------------------------------------------------------------------
[2008-07-22 22:15:59] j...@php.net

You have a parse error there:



PHP Parse error:  syntax error, unexpected T_STRING, expecting
T_VARIABLE in /home/jani/t.php on line 7



And I don't get any E_STRICT notices with fixed version of this code
either..

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


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

    http://bugs.php.net/bug.php?id=45592


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

Reply via email to