ID:               22894
 Comment by:       patr0ck at hispeed dot ch
 Reported By:      david dot grant at wiredmedia dot co dot uk
 Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: Windows 2000
 PHP Version:      4.3.1
 New Comment:

i've got the same problem, but it's not depending on the number of
lines. sometimes the handler does work, sometimes it doesn't. Page
refreshing does switch between the original and my handler, but not
every time, most time it takes the original handler...

Setup: 
- PHP4.3.RC4 / PHP 4.3.1
- Win 2k (shame on my workstation)
- Apache 2.0.45 / Apache 1.3.28

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

Constructor:
function handlerDebug($errno, $errmsg, $errfile, $errline, $context) {
                        $this->addError($errno, $errmsg, $errfile, $errline);
// redefine user error constants
                        define ("ERROR",        E_USER_ERROR);
                        define ("WARNING",      E_USER_WARNING);
                        define ("NOTICE",       E_USER_NOTICE);

                        // set error reporting
                        error_reporting(E_ALL);

                        // set error handler
                        if(!$debug)
                                $this->old_error_handler = 
set_error_handler(array(&$this,
"handlerProductive"));
                        else
                                $this->old_error_handler = 
set_error_handler(array(&$this,
"handlerDebug"));

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

Method:

function handlerDebug($errno, $errmsg, $errfile, $errline, $context) {
                        $this->addError($errno, $errmsg, $errfile, $errline);
                        switch($errno)
                        {
                                case ERROR:
                                        echo "<b><font style=\"background-color:black\"
color=\"gold\">Error:</font></b> $errmsg<br>\n";
                                        echo "&nbsp;&nbsp;&nbsp;<font 
color=\"gray\">Line:</font> $errline
\n";
                                        echo "&nbsp;&nbsp;&nbsp;<font 
color=\"gray\">File:</font>
$errfile<hr>\n";
                                        exit(1);
                                        break;
                                
                                case WARNING:
... and so on

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

software modifications doesn't help...

btw: i hope it works on linux ;o)


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

[2003-04-09 16:45:04] [EMAIL PROTECTED]

Can not reproduce -> bogus.


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

[2003-04-09 09:32:28] david dot grant at wiredmedia dot co dot uk

I have installed 4.3.2RC as directed, but the problem remains   .

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

[2003-04-09 06:54:36] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip



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

[2003-04-09 06:54:14] [EMAIL PROTECTED]

Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.




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

[2003-04-09 06:50:16] david dot grant at wiredmedia dot co dot uk

I've just retested this bug with the same setup (4.3.1, IIS 5), and got
some strange results.

In the constructor, I have a single instruction:

set_error_handler(array(&$this, 'ReportError'));

Then, in the ReportError() method, I have the following:

echo ("ERROR CAUGHT");

In order to test the error handler, I instantiate the object in a
seperate script, and attempt to increment variable i , which doesn't
exist.  This *should* be handled by the error handling class, but is
not.  It is instead handled by the built-in PHP error handler.

Now for the strange part.

I added a HTML comment (echo("<!-- X -->")) to both the constructor and
the ReportError method, and PHP started to use my error reporting class
to report the error.

With further investigation, the reporting seems to change depending on
the number of lines in the file.

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

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/22894

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

Reply via email to