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);  | 
