cvs: php4 /ext/standard credits.c info.c info.h

From: Date: Thu, 26 Sep 2002 19:33:23 +0000
Subject: cvs: php4 /ext/standard credits.c info.c info.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-14266@lists.php.net to get a copy of this message
cmv Thu Sep 26 15:33:23 2002 EDT Modified files: /php4/ext/standard credits.c info.c info.h Log: update credits page with proper HTML, fix HTML escaping, and a few tweaks Index: php4/ext/standard/credits.c diff -u php4/ext/standard/credits.c:1.18 php4/ext/standard/credits.c:1.19 --- php4/ext/standard/credits.c:1.18 Tue Jul 23 19:46:54 2002 +++ php4/ext/standard/credits.c Thu Sep 26 15:33:21 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: credits.c,v 1.18 2002/07/23 23:46:54 jimw Exp $ */ +/* $Id: credits.c,v 1.19 2002/09/26 19:33:21 cmv Exp $ */ #include "php.h" #include "info.h" @@ -31,12 +31,10 @@ TSRMLS_FETCH(); if (flag & PHP_CREDITS_FULLPAGE) { - PUTS("<html><head><title>PHP Credits</title></head><body>\n"); + php_print_info_htmlhead(); } - php_info_print_style(); - - PUTS("<h1 align=\"center\">PHP 4 Credits</h1>\n"); + PUTS("<h1>PHP Credits</h1>\n"); if (flag & PHP_CREDITS_GROUP) { /* Group */ @@ -110,7 +108,7 @@ } if (flag & PHP_CREDITS_FULLPAGE) { - PUTS("</body></html>\n"); + PUTS("</center></body></html>\n"); } } /* }}} */ Index: php4/ext/standard/info.c diff -u php4/ext/standard/info.c:1.205 php4/ext/standard/info.c:1.206 --- php4/ext/standard/info.c:1.205 Thu Sep 26 13:54:53 2002 +++ php4/ext/standard/info.c Thu Sep 26 15:33:21 2002 @@ -18,12 +18,13 @@ +----------------------------------------------------------------------+ */ -/* $Id: info.c,v 1.205 2002/09/26 17:54:53 cmv Exp $ */ +/* $Id: info.c,v 1.206 2002/09/26 19:33:21 cmv Exp $ */ #include "php.h" #include "php_ini.h" #include "php_globals.h" #include "ext/standard/head.h" +#include "ext/standard/html.h" #include "info.h" #include "credits.h" #include "css.h" @@ -35,7 +36,6 @@ #endif #include "zend_globals.h" /* needs ELS */ #include "zend_extensions.h" -#include "zend_highlight.h" #ifdef HAVE_SYS_UTSNAME_H #include <sys/utsname.h> #endif @@ -115,7 +115,7 @@ switch (zend_hash_get_current_key_ex(Z_ARRVAL_PP(data), &string_key, &string_len, &num_key, 0, NULL)) { case HASH_KEY_IS_STRING: if (PG(html_errors)) { - zend_html_puts(string_key, string_len-1); + PUTS(php_info_html_esc( string_key )); } else { PUTS(string_key); } @@ -146,7 +146,7 @@ if (Z_STRLEN(tmp2) == 0) { PUTS("<i>no value</i>"); } else { - zend_html_puts(Z_STRVAL(tmp2), Z_STRLEN(tmp2)); + PUTS(php_info_html_esc( Z_STRVAL(tmp2) )); } } else { PUTS(Z_STRVAL(tmp2)); @@ -157,7 +157,7 @@ if (Z_STRLEN_PP(tmp) == 0) { PUTS("<i>no value</i>"); } else { - zend_html_puts(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp)); + PUTS(php_info_html_esc( Z_STRVAL_PP(tmp) )); } } else { PUTS(Z_STRVAL_PP(tmp)); @@ -184,6 +184,17 @@ } /* }}} */ + +/* {{{ php_info_html_esc + */ +PHPAPI char *php_info_html_esc(char *string) +{ + int new_len; + return php_escape_html_entities(string, strlen(string), &new_len, 1, ENT_COMPAT, NULL); +} +/* }}} */ + + /* {{{ php_get_uname */ PHPAPI char *php_get_uname(char mode) @@ -260,50 +271,64 @@ } /* }}} */ -/* {{{ php_print_info + +/* {{{ php_print_info_htmlhead */ -PHPAPI void php_print_info(int flag TSRMLS_DC) +PHPAPI void php_print_info_htmlhead() { - char **env, *tmp1, *tmp2; const char *charset = NULL; - char *php_uname; - int expose_php = INI_INT("expose_php"); - time_t the_time; - struct tm *ta, tmbuf; + if (SG(default_charset)) { + charset = SG(default_charset); + } - the_time = time(NULL); - ta = php_localtime_r(&the_time, &tmbuf); - if (PG(html_errors)) { - PUTS("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">"); - PUTS("<html>"); - PUTS("<head>"); - php_info_print_style(); - if (SG(default_charset)) { - charset = SG(default_charset); - } #if HAVE_MBSTRING - if (php_ob_handler_used("mb_output_handler" TSRMLS_CC)) { - if (MBSTRG(current_http_output_encoding) == mbfl_no_encoding_pass) { - charset = "US-ASCII"; - } else { - charset = mbfl_no2preferred_mime_name(MBSTRG(current_http_output_encoding)); - } + if (php_ob_handler_used("mb_output_handler" TSRMLS_CC)) { + if (MBSTRG(current_http_output_encoding) == mbfl_no_encoding_pass) { + charset = "US-ASCII"; + } else { + charset = mbfl_no2preferred_mime_name(MBSTRG(current_http_output_encoding)); } + } #endif - } + #if HAVE_ICONV if (php_ob_handler_used("ob_iconv_handler" TSRMLS_CC)) { charset = ICONVG(output_encoding); } #endif + if (!charset || !charset[0]) { charset = "US-ASCII"; } + PUTS("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"); + PUTS("<html>"); + PUTS("<head>\n"); + php_info_print_style(); + PUTS("<title>phpinfo()</title>"); + php_printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\" />\n", charset); + PUTS("</head>\n"); + PUTS("<body><center>\n"); +} +/* }}} */ + + +/* {{{ php_print_info + */ +PHPAPI void php_print_info(int flag TSRMLS_DC) +{ + char **env, *tmp1, *tmp2; + char *php_uname; + int expose_php = INI_INT("expose_php"); + time_t the_time; + struct tm *ta, tmbuf; + + the_time = time(NULL); + ta = php_localtime_r(&the_time, &tmbuf); + if (PG(html_errors)) { - php_printf("<title>phpinfo()</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\" /></head>\n", charset); - PUTS("<body><center>\n"); + php_print_info_htmlhead(); } else { PUTS(" _ _ __ ____ \n"); PUTS(" _ __ | |__ _ __ (_)_ __ / _| ___ / /\\ \\ \n"); @@ -646,7 +671,9 @@ row_element = " "; } if (PG(html_errors)) { - php_printf("<th>%s</th>", row_element); + PUTS("<th>"); + PUTS(php_info_html_esc( row_element )); + PUTS("</th>"); } else { PUTS(row_element); if (i < num_cols-1) { @@ -671,6 +698,10 @@ int i; va_list row_elements; char *row_element; +/* + char *elem_esc; + int elem_esc_len; +*/ TSRMLS_FETCH(); @@ -693,7 +724,7 @@ } } else { if (PG(html_errors)) { - zend_html_puts(row_element, strlen(row_element)); + PUTS(php_info_html_esc( row_element )); } else { PUTS(row_element); if (i < num_cols-1) { Index: php4/ext/standard/info.h diff -u php4/ext/standard/info.h:1.26 php4/ext/standard/info.h:1.27 --- php4/ext/standard/info.h:1.26 Thu Feb 28 03:26:46 2002 +++ php4/ext/standard/info.h Thu Sep 26 15:33:23 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: info.h,v 1.26 2002/02/28 08:26:46 sebastian Exp $ */ +/* $Id: info.h,v 1.27 2002/09/26 19:33:23 cmv Exp $ */ #ifndef INFO_H #define INFO_H @@ -63,6 +63,8 @@ PHP_FUNCTION(php_egg_logo_guid); PHP_FUNCTION(php_sapi_name); PHP_FUNCTION(php_uname); +PHPAPI char *php_info_html_esc(char *string); +PHPAPI void php_print_info_htmlhead(void); PHPAPI void php_print_info(int flag TSRMLS_DC); PHPAPI void php_print_style(void); PHPAPI void php_info_print_style(void);

« previous php.cvs (#14266) next »