Hi,

Thanks for pointing me to README.SUBMITTING_PATCH - it's only included
in the CVS tree, not in the releases.  It might be a good idea to put
it in distribution releases too - I did look around for such a guide
before submitting.

Anyway, here is a new patch against the CVS tree.

Basically, I've added a new option, fancy_html_errors, which defaults
to ON.  If set, it overrides html_errors, and outputs errors in the
same html format, but also includes the following style information:

position:fixed;left:25%;right:25%;top:25%;bottom:25%;
border-style:dashed;border-size:2;background:white;

the reason I'm suggesting this is that at the moment, it's possible to
'loose' a php error message in amoungst other webpage output.  The
style information causes compatible browsers, (Konqueror, for
example), to render a box in the middle of the screen with a dashed
border, containing the php error against a white background.

The only problem I can see is that multiple errors will overlap, but
whether that is a problem or not depends on the user.

John.
Index: main/main.c
===================================================================
RCS file: /repository/php4/main/main.c,v
retrieving revision 1.512
diff -u -r1.512 main.c
--- main/main.c 12 Nov 2002 14:40:00 -0000      1.512
+++ main/main.c 14 Nov 2002 20:57:31 -0000
@@ -246,6 +246,7 @@
        STD_PHP_INI_BOOLEAN("expose_php",                       "1",            
PHP_INI_SYSTEM,         OnUpdateBool,                   expose_php,                    
         php_core_globals,       core_globals)
        STD_PHP_INI_ENTRY("docref_root", "http://www.php.net/";, PHP_INI_ALL,           
 OnUpdateString,                 docref_root,                    php_core_globals,     
  core_globals)
        STD_PHP_INI_ENTRY("docref_ext",                         "",                    
 PHP_INI_ALL,            OnUpdateString,                 docref_ext,                   
          php_core_globals,       core_globals)
+       STD_PHP_INI_BOOLEAN("fancy_html_errors",        "1",            PHP_INI_ALL,   
+         OnUpdateBool,                   fancy_html_errors,              
+php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("html_errors",                      "1",            
PHP_INI_ALL,            OnUpdateBool,                   html_errors,                   
 php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("xmlrpc_errors",            "0",            
PHP_INI_SYSTEM,         OnUpdateBool,                   xmlrpc_errors,                 
 php_core_globals,       core_globals)
        STD_PHP_INI_ENTRY("xmlrpc_error_number",        "0",            PHP_INI_ALL,   
         OnUpdateInt,                    xmlrpc_error_number,    php_core_globals,     
  core_globals)
@@ -453,7 +454,11 @@
                                }
                        }
                        if (PG(html_errors)) {
-                               php_error(type, "%s(%s) [<a href='%s%s%s'>%s</a>]: 
%s", get_active_function_name(TSRMLS_C), params, docref_root, docref, docref_target, 
docref, buffer);
+                               if (PG(fancy_html_errors)) {
+                                       php_error(type, "<div 
+style=\"position:fixed;left:25%;right:25%;top:25%;bottom:25%;border-style:dashed;border-size:2;background:white;\">%s(%s)
+ [<a href='%s%s%s'>%s</a>]: %s</div>", get_active_function_name(TSRMLS_C), params, 
+docref_root, docref, docref_target, docref, buffer);
+                               } else {
+                       }       
+                       php_error(type, "%s(%s) [<a href='%s%s%s'>%s</a>]: %s", 
+get_active_function_name(TSRMLS_C), params, docref_root, docref, docref_target, 
+docref, buffer);
                        } else {
                                php_error(type, "%s(%s) [%s%s%s]: %s", 
get_active_function_name(TSRMLS_C), params, docref_root, docref, docref_target, 
buffer);
                        }
@@ -609,6 +614,9 @@
                        error_format = PG(html_errors) ?
                                "<br />\n<b>%s</b>:  %s in <b>%s</b> on line 
<b>%d</b><br />\n"
                                : "\n%s: %s in %s on line %d\n";
+                       if (PG(fancy_html_errors)) {
+                       error_format = "<div 
+style=\"position:fixed;left:25%;right:25%;top:25%;bottom:25%;border-style:dashed;border-size:2;background:white;\"><br
+ />\n<b>%s</b>:  %s in <b>%s</b> on line <b>%d</b><br /></div>\n";
+                       }
                        if (PG(xmlrpc_errors)) {
                                error_format = do_alloca(ERROR_BUF_LEN);
                                snprintf(error_format, ERROR_BUF_LEN-1, "<?xml 
version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>%ld</int></value></member><member><name>faultString</name><value><string>%%s:%%s
 in %%s on line 
%%d</string></value></member></struct></value></fault></methodResponse>", 
PG(xmlrpc_error_number));
Index: main/php_globals.h
===================================================================
RCS file: /repository/php4/main/php_globals.h,v
retrieving revision 1.84
diff -u -r1.84 php_globals.h
--- main/php_globals.h  21 Oct 2002 16:41:06 -0000      1.84
+++ main/php_globals.h  14 Nov 2002 20:57:31 -0000
@@ -125,6 +125,7 @@
        char *docref_ext;
 
        zend_bool html_errors;
+       zend_bool fancy_html_errors;
        zend_bool xmlrpc_errors;
 
        long xmlrpc_error_number;

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to