#41862 [Opn]: Errorhandler doesn't work (PHP4 only)
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 pleease 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
#41862 [Opn]: Errorhandler doesn't work (PHP4 only)
ID: 41862 Updated by: [EMAIL PROTECTED] 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: 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 Previous Comments: [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 pleease explain to me, why the first version crashes without any message? [2007-07-02 06:29:19] thomas at thoftware dot de Neither with require_once(), require(), include() nor with set_error_handler() anything about the above behaviour is explained. I checked it four times. Can you please simply give me a direct link to that part of the documentation where it is mentioned? Or am I supposed to read the comlplete documentation as in that way you always have the chance that somewhere there might be some well hidden information about it? [2007-07-02 01:34:29] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php . 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/41862 -- Edit this bug report at http://bugs.php.net/?id=41862&edit=1
#41862 [Opn]: Errorhandler doesn't work (PHP4 only)
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: 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? Previous Comments: [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 pleease explain to me, why the first version crashes without any message? [2007-07-02 06:29:19] thomas at thoftware dot de Neither with require_once(), require(), include() nor with set_error_handler() anything about the above behaviour is explained. I checked it four times. Can you please simply give me a direct link to that part of the documentation where it is mentioned? Or am I supposed to read the comlplete documentation as in that way you always have the chance that somewhere there might be some well hidden information about it? [2007-07-02 01:34:29] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php . [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