diff options
-rw-r--r-- | LICENSE | 101 | ||||
-rw-r--r-- | cgi_main.c | 2 | ||||
-rw-r--r-- | ext/apache/apache.c | 52 | ||||
-rw-r--r-- | ext/standard/basic_functions.c | 1 | ||||
-rw-r--r-- | ext/standard/info.c | 282 | ||||
-rw-r--r-- | ext/standard/info.h | 18 | ||||
-rw-r--r-- | main/php_ini.c | 4 |
7 files changed, 250 insertions, 210 deletions
@@ -1,64 +1,63 @@ - -------------------------------------------------------------------- - Copyright (c) 1998 The PHP Development Team. All rights reserved. - -------------------------------------------------------------------- - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: +-------------------------------------------------------------------- + The PHP License, version 2.0 +Copyright (c) 1999 The PHP Group. All rights reserved. +-------------------------------------------------------------------- - 1. Commercial redistribution of larger works derived from, or - works which bundle PHP, requires written permission from the - PHP Development Team. You may charge a fee for the physical - act of transferring a copy, and must make it clear that the - fee being charged is for the distribution, and not for the - software itself. You may, at your option, offer warranty - protection in exchange for a fee. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: - 2. Redistributions of source code must retain the above copyright + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - 3. Redistributions in binary form must reproduce the above + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - 4. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software written by the PHP Development - Team" - - 5. The name "PHP" must not be used to endorse or promote products - derived from this software without prior written permission - from the PHP Development Team. This does not apply to add-on - libraries or tools that work in conjunction with PHP. In such - a case the PHP name may be used to indicate that the product - supports PHP. + 3. The name "PHP" must not be used to endorse or promote products + derived from this software without prior permission from the + PHP Group. This does not apply to add-on libraries or tools + that work in conjunction with PHP. In such a case the PHP + name may be used to indicate that the product supports PHP. - 6. Redistributions of any form whatsoever must retain the following + 4. The PHP Group reserves the right to modify the PHP license at + any time and without prior notice, as long as the changes keep + the free and open source nature of PHP. + + 5. Redistributions of any form whatsoever must retain the following acknowledgment: - "This product includes software written by the PHP Development - Team". - - THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND - ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP - DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. + "This product includes PHP, freely available from + http://www.php.net/". - -------------------------------------------------------------------- + 6. Permission to freely distribute and use Zend as an integrated + part of PHP is granted, under the conditions of version 0.90 + of the Zend License. + The license is bundled with the Zend engine, and is available + at http://www.zend.com/license/0_90.txt, or by contacting + license@zend.com. - This software consists of voluntary contributions made by many - individuals on behalf of the PHP Development Team. - The PHP Development Team can be contacted via Email at core@php.net. - - For more information on the PHP Development Team and the PHP - project, please see <http://www.php.net>. - + +THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP +DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------- + +This software consists of voluntary contributions made by many +individuals on behalf of the PHP Group. + +The PHP Group can be contacted via Email at php-group@php.net. + +For more information on the PHP Development Group and the PHP +project, please see <http://www.php.net>. diff --git a/cgi_main.c b/cgi_main.c index 8434ae7209..7c720c258a 100644 --- a/cgi_main.c +++ b/cgi_main.c @@ -310,7 +310,7 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine } cgi_started=1; php3_TreatHeaders(); - _php3_info(); + _php3_info(0xFFFFFFFF); exit(1); break; case 's': diff --git a/ext/apache/apache.c b/ext/apache/apache.c index 8f72fbfbb2..75e971cace 100644 --- a/ext/apache/apache.c +++ b/ext/apache/apache.c @@ -172,7 +172,57 @@ void php3_info_apache(ZEND_MODULE_INFO_FUNC_ARGS) SLS_FETCH(); serv = ((request_rec *) SG(server_context))->server; - + + { + register int i; + array_header *arr; + table_entry *elts; + request_rec *r; + SLS_FETCH(); + + r = ((request_rec *) SG(server_context)); + arr = table_elts(r->subprocess_env); + elts = (table_entry *)arr->elts; + + SECTION("Apache Environment"); + PUTS("<table border=5 width=\"600\">\n"); + php_info_print_table_header(2, "Variable", "Value"); + for (i=0; i < arr->nelts; i++) { + php_info_print_table_row(2, elts[i].key, elts[i].val); + } + PUTS("</table>\n"); + } + + { + array_header *env_arr; + table_entry *env; + int i; + request_rec *r; + SLS_FETCH(); + + r = ((request_rec *) SG(server_context)); + SECTION("HTTP Headers Information"); + PUTS("<table border=5 width=\"600\">\n"); + PUTS(" <tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Request Headers</th></tr>\n"); + php_info_print_table_row(2, "HTTP Request", r->the_request); + env_arr = table_elts(r->headers_in); + env = (table_entry *)env_arr->elts; + for (i = 0; i < env_arr->nelts; ++i) { + if (env[i].key) { + php_info_print_table_row(2, env[i].key, env[i].val); + } + } + PUTS(" <tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Response Headers</th></tr>\n"); + env_arr = table_elts(r->headers_out); + env = (table_entry *)env_arr->elts; + for(i = 0; i < env_arr->nelts; ++i) { + if (env[i].key) { + php_info_print_table_row(2, env[i].key, env[i].val); + } + } + PUTS("</table>\n\n"); + } + PUTS("<table border=5 width=\"600\">\n"); php_info_print_table_header(2, "Entry", "Value"); #if WIN32|WINNT diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index fd210e8568..f75fc1cc9e 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -381,6 +381,7 @@ int php3_minit_basic(INIT_FUNC_ARGS) test_class_startup(); REGISTER_INI_ENTRIES(); + register_phpinfo_constants(INIT_FUNC_ARGS_PASSTHRU); return SUCCESS; } diff --git a/ext/standard/info.c b/ext/standard/info.c index 110efc49ec..19bf3f3fe0 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -58,7 +58,7 @@ static int _display_module_info(php3_module_entry *module) } -PHPAPI void _php3_info(void) +PHPAPI void _php3_info(int flag) { char **env,*tmp1,*tmp2; char *php3_uname; @@ -73,93 +73,96 @@ PHPAPI void _php3_info(void) PLS_FETCH(); SLS_FETCH(); + if (flag & PHP_INFO_GENERAL) { #if WIN32|WINNT - // Get build numbers for Windows NT or Win95 - if (dwVersion < 0x80000000){ - dwBuild = (DWORD)(HIWORD(dwVersion)); - snprintf(php3_windows_uname,255,"%s %d.%d build %d","Windows NT",dwWindowsMajorVersion,dwWindowsMinorVersion,dwBuild); - } else { - snprintf(php3_windows_uname,255,"%s %d.%d","Windows 95/98",dwWindowsMajorVersion,dwWindowsMinorVersion); - } - php3_uname = php3_windows_uname; + // Get build numbers for Windows NT or Win95 + if (dwVersion < 0x80000000){ + dwBuild = (DWORD)(HIWORD(dwVersion)); + snprintf(php3_windows_uname,255,"%s %d.%d build %d","Windows NT",dwWindowsMajorVersion,dwWindowsMinorVersion,dwBuild); + } else { + snprintf(php3_windows_uname,255,"%s %d.%d","Windows 95/98",dwWindowsMajorVersion,dwWindowsMinorVersion); + } + php3_uname = php3_windows_uname; #else - php3_uname=PHP_UNAME; + php3_uname=PHP_UNAME; #endif - php3_printf("<center><h1>PHP Version %s</h1></center>\n", PHP_VERSION); + php3_printf("<center><h1>PHP Version %s</h1></center>\n", PHP_VERSION); - PUTS("<hr><a href=\"http://www.php.net/\"><img src=\""); - if (SG(request_info).request_uri) { - PUTS(SG(request_info).request_uri); - } - PUTS("?=PHPE9568F34-D428-11d2-A769-00AA001ACF42\" border=\"0\" width=\"100\" height=\"56\" align=\"right\"></a>\n"); - php3_printf("System: %s<br>Build Date: %s\n<br>", php3_uname, __DATE__); - php3_printf("php3.ini path: %s<br>\n", CONFIGURATION_FILE_PATH); + PUTS("<hr><a href=\"http://www.php.net/\"><img src=\""); + if (SG(request_info).request_uri) { + PUTS(SG(request_info).request_uri); + } + PUTS("?=PHPE9568F34-D428-11d2-A769-00AA001ACF42\" border=\"0\" width=\"100\" height=\"56\" align=\"right\"></a>\n"); + php3_printf("System: %s<br>Build Date: %s\n<br>", php3_uname, __DATE__); + php3_printf("php3.ini path: %s<br>\n", CONFIGURATION_FILE_PATH); - php3_printf("ZEND_DEBUG=%d<br>\n", ZEND_DEBUG); + php3_printf("ZEND_DEBUG=%d<br>\n", ZEND_DEBUG); #ifdef ZTS - php3_printf("ZTS is defined"); + php3_printf("ZTS is defined"); #else - php3_printf("ZTS is undefined"); + php3_printf("ZTS is undefined"); #endif - /* Zend Engine */ - PUTS("<hr><a href=\"http://www.zend.com/\"><img src=\""); - if (SG(request_info).request_uri) { - PUTS(SG(request_info).request_uri); + /* Zend Engine */ + PUTS("<hr><a href=\"http://www.zend.com/\"><img src=\""); + if (SG(request_info).request_uri) { + PUTS(SG(request_info).request_uri); + } + PUTS("?=PHPE9568F35-D428-11d2-A769-00AA001ACF42\" border=\"0\" width=\"100\" height=\"89\" align=\"right\"></a>\n"); + php3_printf("This program makes use of the Zend scripting language engine:<br><pre>%s</pre>", get_zend_version()); + PUTS("<hr>"); } - PUTS("?=PHPE9568F35-D428-11d2-A769-00AA001ACF42\" border=\"0\" width=\"100\" height=\"89\" align=\"right\"></a>\n"); - php3_printf("This program makes use of the Zend scripting language engine:<br><pre>%s</pre>", get_zend_version()); - PUTS("<center>"); - - PUTS("<hr><h1>Credits</h1>\n"); - - PUTS("<table border=5 width=\"600\">\n"); - PUTS("<tr><th colspan=\"2\" bgcolor=\"" PHP_HEADER_COLOR "\">PHP 4.0 Authors</th></tr>\n"); - php_info_print_table_header(2, "Module", "Authors"); - CREDIT_LINE("Scripting Language Engine", "Andi Gutmans, Zeev Suraski"); - CREDIT_LINE("Extension Module API", "Andi Gutmans, Zeev Suraski"); - CREDIT_LINE("UNIX Build and Modularization", "Stig Bakken"); - CREDIT_LINE("Win32 Port", "Shane Caraveo, Zeev Suraski"); - CREDIT_LINE("Server API (SAPI) Abstraction Layer", "Andi Gutmans, Shane Caraveo, Zeev Suraski"); - CREDIT_LINE("Apache SAPI Module", "Rasmus Lerdorf, Zeev Suraski"); - CREDIT_LINE("ISAPI SAPI Module", "Andi Gutmans, Zeev Suraski"); - CREDIT_LINE("CGI SAPI Module", "Rasmus Lerdorf, Stig Bakken"); - PUTS("</table>\n"); - - - PUTS("<hr><h1>Configuraton</h1>\n"); - PUTS("<h2>PHP Core</h2>\n"); - display_ini_entries(NULL); - _php3_hash_apply(&module_registry,(int (*)(void *)) _display_module_info); - -#if 0 - /* apache only directives */ - PHP3_CONF_LONG("engine", INI_ORIG_INT("engine"), INI_INT("engine")); /* apache only */ - PHP3_CONF_LONG("xbithack", INI_ORIG_INT("xbithack"), INI_INT("xbithack")); /* apache only */ - PHP3_CONF_LONG("last_modified", INI_ORIG_INT("last_modified"), INI_INT("last_modified")); /* apache only */ - /* end of apache only directives */ -#endif - SECTION("Environment"); - PUTS("<table border=5 width=\"600\">\n"); - php_info_print_table_header(2, "Variable", "Value"); - for (env=environ; env!=NULL && *env !=NULL; env++) { - tmp1 = estrdup(*env); - if (!(tmp2=strchr(tmp1,'='))) { /* malformed entry? */ + if (flag & PHP_INFO_CREDITS) { + PUTS("<h1>Credits</h1>\n"); + + PUTS("<table border=5 width=\"600\">\n"); + PUTS("<tr><th colspan=\"2\" bgcolor=\"" PHP_HEADER_COLOR "\">PHP 4.0 Authors</th></tr>\n"); + php_info_print_table_header(2, "Contribution", "Authors"); + CREDIT_LINE("Zend Scripting Language Engine", "Andi Gutmans, Zeev Suraski"); + CREDIT_LINE("Extension Module API", "Andi Gutmans, Zeev Suraski"); + CREDIT_LINE("UNIX Build and Modularization", "Stig Bakken"); + CREDIT_LINE("Win32 Port", "Shane Caraveo, Zeev Suraski"); + CREDIT_LINE("Server API (SAPI) Abstraction Layer", "Andi Gutmans, Shane Caraveo, Zeev Suraski"); + CREDIT_LINE("Apache SAPI Module", "Rasmus Lerdorf, Zeev Suraski"); + CREDIT_LINE("ISAPI SAPI Module", "Andi Gutmans, Zeev Suraski"); + CREDIT_LINE("CGI SAPI Module", "Rasmus Lerdorf, Stig Bakken"); + PUTS("</table>\n"); + } + + + if (flag & PHP_INFO_CONFIGURATION) { + PUTS("<hr><h1>Configuration</h1>\n"); + PUTS("<h2>PHP Core</h2>\n"); + display_ini_entries(NULL); + } + + if (flag & PHP_INFO_MODULES) { + _php3_hash_apply(&module_registry,(int (*)(void *)) _display_module_info); + } + + if (flag & PHP_INFO_ENVIRONMENT) { + SECTION("Environment"); + PUTS("<table border=5 width=\"600\">\n"); + php_info_print_table_header(2, "Variable", "Value"); + for (env=environ; env!=NULL && *env !=NULL; env++) { + tmp1 = estrdup(*env); + if (!(tmp2=strchr(tmp1,'='))) { /* malformed entry? */ + efree(tmp1); + continue; + } + *tmp2 = 0; + tmp2++; + php_info_print_table_row(2, tmp1, tmp2); efree(tmp1); - continue; } - *tmp2 = 0; - tmp2++; - php_info_print_table_row(2, tmp1, tmp2); - efree(tmp1); + PUTS("</table>\n"); } - PUTS("</table>\n"); - { + if (flag & PHP_INFO_VARIABLES) { pval **data, **tmp; char *string_key; ulong num_key; @@ -184,7 +187,7 @@ PHPAPI void _php3_info(void) _php3_hash_internal_pointer_reset((*data)->value.ht); while (_php3_hash_get_current_data((*data)->value.ht, (void **) &tmp) == SUCCESS) { convert_to_string(*tmp); - PUTS("<tr><td bgcolor=\"" PHP_ENTRY_NAME_COLOR "\">HTTP_GET_VARS[\""); + PUTS("<tr><td bgcolor=\"" PHP_ENTRY_NAME_COLOR "\"><b>HTTP_GET_VARS[\""); switch (_php3_hash_get_current_key((*data)->value.ht, &string_key, &num_key)) { case HASH_KEY_IS_STRING: PUTS(string_key); @@ -194,7 +197,7 @@ PHPAPI void _php3_info(void) php3_printf("%ld",num_key); break; } - PUTS("\"]</td><td bgcolor=\"" PHP_CONTENTS_COLOR "\">"); + PUTS("\"]</b></td><td bgcolor=\"" PHP_CONTENTS_COLOR "\">"); PUTS((*tmp)->value.str.val); /* This could be "Array" - too ugly to expand that for now */ PUTS("</td></tr>\n"); _php3_hash_move_forward((*data)->value.ht); @@ -204,7 +207,7 @@ PHPAPI void _php3_info(void) _php3_hash_internal_pointer_reset((*data)->value.ht); while (_php3_hash_get_current_data((*data)->value.ht, (void **) &tmp) == SUCCESS) { convert_to_string(*tmp); - PUTS("<tr><td bgcolor=\"" PHP_ENTRY_NAME_COLOR "\">HTTP_POST_VARS[\""); + PUTS("<tr><td bgcolor=\"" PHP_ENTRY_NAME_COLOR "\"><b>HTTP_POST_VARS[\""); switch (_php3_hash_get_current_key((*data)->value.ht, &string_key, &num_key)) { case HASH_KEY_IS_STRING: PUTS(string_key); @@ -214,7 +217,7 @@ PHPAPI void _php3_info(void) php3_printf("%ld",num_key); break; } - PUTS("\"]</td><td bgcolor=\"" PHP_CONTENTS_COLOR "\">"); + PUTS("\"]</b></td><td bgcolor=\"" PHP_CONTENTS_COLOR "\">"); PUTS((*tmp)->value.str.val); PUTS("</td></tr>\n"); _php3_hash_move_forward((*data)->value.ht); @@ -224,7 +227,7 @@ PHPAPI void _php3_info(void) _php3_hash_internal_pointer_reset((*data)->value.ht); while (_php3_hash_get_current_data((*data)->value.ht, (void **) &tmp) == SUCCESS) { convert_to_string(*tmp); - PUTS("<tr><td bgcolor=\"" PHP_ENTRY_NAME_COLOR "\">HTTP_COOKIE_VARS[\""); + PUTS("<tr><td bgcolor=\"" PHP_ENTRY_NAME_COLOR "\"><b>HTTP_COOKIE_VARS[\""); switch (_php3_hash_get_current_key((*data)->value.ht, &string_key, &num_key)) { case HASH_KEY_IS_STRING: PUTS(string_key); @@ -234,7 +237,7 @@ PHPAPI void _php3_info(void) php3_printf("%ld",num_key); break; } - PUTS("\"]</td><td bgcolor=\"" PHP_CONTENTS_COLOR "\">"); + PUTS("\"]</b></td><td bgcolor=\"" PHP_CONTENTS_COLOR "\">"); PUTS((*tmp)->value.str.val); PUTS("</td></tr>\n"); _php3_hash_move_forward((*data)->value.ht); @@ -243,83 +246,22 @@ PHPAPI void _php3_info(void) PUTS("</table>\n"); } -#if APACHE - { - register int i; - array_header *arr; - table_entry *elts; - request_rec *r; - SLS_FETCH(); - - r = ((request_rec *) SG(server_context)); - arr = table_elts(r->subprocess_env); - elts = (table_entry *)arr->elts; - - SECTION("Apache Environment"); - PUTS("<table border=5 width=\"600\">\n"); - php_info_print_table_header(2, "Variable", "Value"); - for (i=0; i < arr->nelts; i++) { - php_info_print_table_row(2, elts[i].key, elts[i].val); - } - PUTS("</table>\n"); - } -#endif - -#if APACHE - { - array_header *env_arr; - table_entry *env; - int i; - request_rec *r; - SLS_FETCH(); - - r = ((request_rec *) SG(server_context)); - SECTION("HTTP Headers Information"); - PUTS("<table border=5 width=\"600\">\n"); - PUTS(" <tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Request Headers</th></tr>\n"); - php_info_print_table_row(2, "HTTP Request", r->the_request); - env_arr = table_elts(r->headers_in); - env = (table_entry *)env_arr->elts; - for (i = 0; i < env_arr->nelts; ++i) { - if (env[i].key) { - php_info_print_table_row(2, env[i].key, env[i].val); - } - } - PUTS(" <tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Response Headers</th></tr>\n"); - env_arr = table_elts(r->headers_out); - env = (table_entry *)env_arr->elts; - for(i = 0; i < env_arr->nelts; ++i) { - if (env[i].key) { - php_info_print_table_row(2, env[i].key, env[i].val); - } - } - PUTS("</table>\n\n"); - } -#endif - PUTS("</center>"); - SECTION("PHP License"); - PUTS("<PRE>This program is free software; you can redistribute it and/or modify\n"); - PUTS("it under the terms of:\n"); - PUTS("\n"); - PUTS("A) the GNU General Public License as published by the Free Software\n"); - PUTS(" Foundation; either version 2 of the License, or (at your option)\n"); - PUTS(" any later version.\n"); - PUTS("\n"); - PUTS("B) the PHP License as published by the PHP Development Team and\n"); - PUTS(" included in the distribution in the file: LICENSE\n"); - PUTS("\n"); - PUTS("This program is distributed in the hope that it will be useful,\n"); - PUTS("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); - PUTS("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"); - PUTS("GNU General Public License for more details.\n"); - PUTS("\n"); - PUTS("You should have received a copy of both licenses referred to here.\n"); - PUTS("If you did not, or have any questions about PHP licensing, please\n"); - PUTS("contact core@php.net.</PRE>\n"); - + if (flag & PHP_INFO_LICENSE) { + SECTION("PHP License"); + PUTS("<PRE>This program is free software; you can redistribute it and/or modify\n"); + PUTS("it under the terms of the PHP License as published by the PHP Development Team\n"); + PUTS("and included in the distribution in the file: LICENSE\n"); + PUTS("\n"); + PUTS("This program is distributed in the hope that it will be useful,\n"); + PUTS("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + PUTS("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); + PUTS("\n"); + PUTS("If you did not receive a copy of the PHP license, or have any questions about\n"); + PUTS("PHP licensing, please contact license@php.net.</PRE>\n"); + } } @@ -360,7 +302,8 @@ PHPAPI void php_info_print_table_row(int num_cols, ...) if (!row_element || !*row_element) { row_element = " "; } - php3_printf("<td bgcolor=\"%s\" valign=\"top\">%s</td>", color, row_element); + php3_printf("<td bgcolor=\"%s\" valign=\"top\">%s%s%s</td>", + color, (i==0?"<b>":""), row_element, (i==0?"</b>":"")); color = PHP_CONTENTS_COLOR; } php3_printf("</tr>\n"); @@ -369,11 +312,46 @@ PHPAPI void php_info_print_table_row(int num_cols, ...) } + +void register_phpinfo_constants(INIT_FUNC_ARGS) +{ + ELS_FETCH(); + + REGISTER_LONG_CONSTANT("INFO_GENERAL", PHP_INFO_GENERAL, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_CREDITS", PHP_INFO_CREDITS, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_CONFIGURATION", PHP_INFO_CONFIGURATION, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_MODULES", PHP_INFO_MODULES, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_ENVIRONMENT", PHP_INFO_ENVIRONMENT, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_VARIABLES", PHP_INFO_VARIABLES, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_LICENSE", PHP_INFO_LICENSE, CONST_PERSISTENT|CONST_CS); + REGISTER_LONG_CONSTANT("INFO_ALL", PHP_INFO_ALL, CONST_PERSISTENT|CONST_CS); +} + + /* {{{ proto void phpinfo(void) Output a page of useful information about PHP and the current request */ PHP_FUNCTION(info) { - _php3_info(); + int flag; + zval *flag_arg; + + + switch (ARG_COUNT(ht)) { + case 0: + flag = 0xFFFFFFFF; + break; + case 1: + if (getParameters(ht, 1, &flag_arg)==FAILURE) { + RETURN_FALSE; + } + convert_to_long(flag_arg); + flag = flag_arg->value.lval; + break; + default: + WRONG_PARAM_COUNT; + break; + } + _php3_info(flag); RETURN_TRUE; } /* }}} */ diff --git a/ext/standard/info.h b/ext/standard/info.h index 957015ba37..db8abb45fe 100644 --- a/ext/standard/info.h +++ b/ext/standard/info.h @@ -32,15 +32,27 @@ #ifndef _INFO_H #define _INFO_H -#define PHP_ENTRY_NAME_COLOR "#999999" +#define PHP_ENTRY_NAME_COLOR "#FFFFFF" #define PHP_CONTENTS_COLOR "#DDDDDD" -#define PHP_HEADER_COLOR "#00DDDD" +#define PHP_HEADER_COLOR "#FFFF99" + +#define PHP_INFO_GENERAL (1<<0) +#define PHP_INFO_CREDITS (1<<1) +#define PHP_INFO_CONFIGURATION (1<<2) +#define PHP_INFO_MODULES (1<<3) +#define PHP_INFO_ENVIRONMENT (1<<4) +#define PHP_INFO_VARIABLES (1<<5) +#define PHP_INFO_LICENSE (1<<6) + +#define PHP_INFO_ALL 0xFFFFFFFF PHP_FUNCTION(version); PHP_FUNCTION(info); -PHPAPI void _php3_info(void); +PHPAPI void _php3_info(int flag); PHPAPI void php_info_print_table_header(int num_cols, ...); PHPAPI void php_info_print_table_row(int num_cols, ...); +void register_phpinfo_constants(INIT_FUNC_ARGS); + #endif /* _INFO_H */ diff --git a/main/php_ini.c b/main/php_ini.c index 67da69d24e..19829b2763 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -333,9 +333,9 @@ static int php_ini_displayer(php_ini_entry *ini_entry, int module_number) return 0; } - PUTS("<tr><td align=\"center\" bgcolor=\"" PHP_ENTRY_NAME_COLOR "\">"); + PUTS("<tr><td align=\"center\" bgcolor=\"" PHP_ENTRY_NAME_COLOR "\"><b>"); PHPWRITE(ini_entry->name, ini_entry->name_length-1); - PUTS("<td align=\"center\" bgcolor=\"" PHP_CONTENTS_COLOR "\">"); + PUTS("</b></td><td align=\"center\" bgcolor=\"" PHP_CONTENTS_COLOR "\">"); php_ini_displayer_cb(ini_entry, PHP_INI_DISPLAY_ACTIVE); PUTS("</td><td align=\"center\" bgcolor=\"" PHP_CONTENTS_COLOR "\">"); php_ini_displayer_cb(ini_entry, PHP_INI_DISPLAY_ORIG); |