mirror of
https://github.com/php/php-src.git
synced 2024-11-27 03:44:07 +08:00
- Add a bitwise flag to phpinfo()
- Import a draft of the new PHP license
This commit is contained in:
parent
fec59d3b4d
commit
3e6bce59b3
101
LICENSE
101
LICENSE
@ -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"
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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>.
|
||||
|
@ -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':
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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");
|
||||
if (flag & PHP_INFO_CREDITS) {
|
||||
PUTS("<h1>Credits</h1>\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? */
|
||||
efree(tmp1);
|
||||
continue;
|
||||
}
|
||||
*tmp2 = 0;
|
||||
tmp2++;
|
||||
php_info_print_table_row(2, tmp1, tmp2);
|
||||
efree(tmp1);
|
||||
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");
|
||||
}
|
||||
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);
|
||||
}
|
||||
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;
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user