ID:               41862
 User updated by:  thomas at thoftware dot de
 Reported By:      thomas at thoftware dot de
 Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: Windows XP
 PHP Version:      4.4.7
 New Comment:

So someone may change status to "Wont fix"? And maybe add something
like "Don't use functions as argument for require() when setting an
errorhandler." to the documentation of set_error_handler()?


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

[2007-07-10 21:55:09] [EMAIL PROTECTED]

right, there's a problem with PHP 4 if foo does not exist, but I doubt
anybody is going to fix it.

Program received signal SIGSEGV, Segmentation fault.
php_strip_url_passwd (url=0x0) at
/home/johannes/src/php/PHP_4_4/main/fopen_wrappers.c:481
481             while (*p) {
(gdb) bt
#0  php_strip_url_passwd (url=0x0) at
/home/johannes/src/php/PHP_4_4/main/fopen_wrappers.c:481
#1  0x080b46d8 in php_message_handler_for_zend (message=2, data=0x0) at
/home/johannes/src/php/PHP_4_4/main/main.c:812
#2  0x080f22e1 in execute (op_array=0x8df088c) at
/home/johannes/src/php/PHP_4_4/Zend/zend_execute.c:2240
#3  0x080df3ab in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /home/johannes/src/php/PHP_4_4/Zend/zend.c:935
#4  0x080b3805 in php_execute_script (primary_file=0xbf88fed0) at
/home/johannes/src/php/PHP_4_4/main/main.c:1757
#5  0x080f9d39 in main (argc=1, argv=0xbf88ff94) at
/home/johannes/src/php/PHP_4_4/sapi/cli/php_cli.c:838


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

[2007-07-09 13:45:09] thomas at thoftware dot de

At 5 Jul 1:55pm UTC somebody changed the subject and added ' (PHP4
only)' with no additional comment. Since then no further action took
place. Can any of you developers out there tell me what this means?

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

[2007-07-03 08:30:22] thomas at thoftware dot de

I've checked the documentation another time and did not find anything
that explains or even discusses the above behaviour. As I'm not sure if
anyone is reading this while the status is "Bogus", I've decided to
reopen it.

Maybe someone can read my additional submissions - and if you are sure
it is bogus, than please give me a little more specific hint, where I
can find it in the documentation (as normally done when a submission is
answered with the "Thank you for taking the time"-Text).

Thank you in advance.

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

[2007-07-02 06:42:34] thomas at thoftware dot de

Something I found even earlier is: "The following error types cannot be
handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR,
E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT
raised in the file where set_error_handler() is called.". Is that what
you mean I should have read? Please note, that that isn't the problem.

I don't want these error types to be handled. I simply want the whole
construct to run and not to crash. The above script works fine in these
2 versions:

Reproduce code 2 (works):
---------------
  function foo($foo) {
    return($foo);
  }
  error_reporting(E_ALL);
  require_once(foo('foo'));

Reproduce code 3 (works):
---------------
  function ehandler($e,$t,$f,$l,$c) {
    echo $t;
  }
  set_error_handler('ehandler');
  error_reporting(E_ALL);
  require_once('foo');

(Where 'fine' means, it shows the error an stops.)

Can you pleeeeeeeeeease explain to me, why the first version crashes
without any message?

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

[2007-06-30 21:29:30] thomas at thoftware dot de

Description:
------------
Setting an Errorhandler with set_error_handler() and then calling
require() with a Function as Argument doesn't produce the expected
Result.

Reproduce code:
---------------
  function ehandler($e,$t,$f,$l,$c) {
    echo $t;
  }
  function foo($foo) {
    return($foo);
  }
  set_error_handler('ehandler');
  error_reporting(E_ALL);
  require_once(foo('foo'));


Expected result:
----------------
Some Errormessage like this:

main(foo) [function.main]: failed to open stream: No such file or
directory
Fatal error: main() [function.require]: Failed opening required 'foo'
(include_path='.;c:\php4\pear') in foo.php on line x

Actual result:
--------------
Nothing (infinite loop?). PHP crashes.

Using no Errorhandler or giving 'foo' directly to require_once() works.


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


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

Reply via email to