static void php_info_pi3web(ZEND_MODULE_INFO_FUNC_ARGS) { char variable_buf[PI3WEB_SERVER_VAR_BUF_SIZE]; DWORD variable_len; LPCONTROL_BLOCK lpCB = (LPCONTROL_BLOCK) SG(server_context); PIDB *pDB = (PIDB *)lpCB->GetVariableNames(lpCB->ConnID); PIDBIterator *pIter = PIDB_getIterator( pDB, PIDBTYPE_STRING, 0, 0 ); PUTS("<table border=0 cellpadding=3 cellspacing=1 width=600 align=center>\n"); PUTS("<tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">Pi3Web Server Information</th></tr>\n"); php_info_print_table_header(2, "Information Field", "Value"); php_info_print_table_row(2, "Pi3Web SAPI module version", "$Id: pi3web_sapi.c 306939 2011-01-01 02:19:59Z felipe $"); php_info_print_table_row(2, "Server Name Stamp", HTTPCore_getServerStamp()); snprintf(variable_buf, 511, "%d", HTTPCore_debugEnabled()); php_info_print_table_row(2, "Debug Enabled", variable_buf); PIPlatform_getCurrentDirectory( variable_buf, PI3WEB_SERVER_VAR_BUF_SIZE); php_info_print_table_row(2, "Current Path", variable_buf); if (lpCB->GetServerVariable(lpCB->ConnID, "SERVER_NAME", variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, "Main Virtual Hostname", variable_buf); }; snprintf(variable_buf, 511, "%d", PIPlatform_getProcessId()); php_info_print_table_row(2, "Server PID", variable_buf); php_info_print_table_row(2, "Server Platform", PIPlatform_getDescription()); PUTS("</table><br />"); PUTS("<table border=0 cellpadding=3 cellspacing=1 width=600 align=center>\n"); PUTS("<tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Request Information</th></tr>\n"); php_info_print_table_row(2, "HTTP Request Line", lpCB->lpszReq); PUTS("<tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Headers</th></tr>\n"); php_info_print_table_header(2, "Server Variable", "Value"); /* --- loop over all registered server variables --- */ for(; pIter && PIDBIterator_atValidElement( pIter ); PIDBIterator_next( pIter ) ) { PCHAR pKey; PIDBIterator_current( pIter, &pKey ); if ( !pKey ) { /* sanity */ continue; }; variable_len = PI3WEB_SERVER_VAR_BUF_SIZE; if (lpCB->GetServerVariable(lpCB->ConnID, pKey, variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, pKey, variable_buf); } else if (PIPlatform_getLastError() == PIAPI_EINVAL) { char *tmp_variable_buf; tmp_variable_buf = (char *) emalloc(variable_len); if (lpCB->GetServerVariable(lpCB->ConnID, pKey, tmp_variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, pKey, tmp_variable_buf); } efree(tmp_variable_buf); } } PUTS("</table>"); }
static void php_info_pi3web(ZEND_MODULE_INFO_FUNC_ARGS) { char **p = pi3web_server_variables; char variable_buf[PI3WEB_SERVER_VAR_BUF_SIZE]; DWORD variable_len; LPCONTROL_BLOCK lpCB; SLS_FETCH(); lpCB = (LPCONTROL_BLOCK) SG(server_context); PUTS("<table border=0 cellpadding=3 cellspacing=1 width=600 align=center>\n"); PUTS("<tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">Pi3Web Server Information</th></tr>\n"); php_info_print_table_header(2, "Information Field", "Value"); php_info_print_table_row(2, "Pi3Web SAPI module version", "$Id$"); php_info_print_table_row(2, "Server Name Stamp", HTTPCore_getServerStamp()); snprintf(variable_buf, 511, "%d", HTTPCore_debugEnabled()); php_info_print_table_row(2, "Debug Enabled", variable_buf); PIPlatform_getCurrentDirectory( variable_buf, PI3WEB_SERVER_VAR_BUF_SIZE); php_info_print_table_row(2, "Current Path", variable_buf); if (lpCB->GetServerVariable(lpCB->ConnID, "SERVER_NAME", variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, "Main Virtual Hostname", variable_buf); }; snprintf(variable_buf, 511, "%d", PIPlatform_getProcessId()); php_info_print_table_row(2, "Server PID", variable_buf); php_info_print_table_row(2, "Server Platform", PIPlatform_getDescription()); PUTS("</table><BR>"); PUTS("<table border=0 cellpadding=3 cellspacing=1 width=600 align=center>\n"); PUTS("<tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Request Information</th></tr>\n"); php_info_print_table_row(2, "HTTP Request Line", lpCB->lpszReq); PUTS("<tr><th colspan=2 bgcolor=\"" PHP_HEADER_COLOR "\">HTTP Headers</th></tr>\n"); php_info_print_table_header(2, "Server Variable", "Value"); while (*p) { variable_len = PI3WEB_SERVER_VAR_BUF_SIZE; if (lpCB->GetServerVariable(lpCB->ConnID, *p, variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, *p, variable_buf); } else if (PIPlatform_getLastError() == PIAPI_EINVAL) { char *tmp_variable_buf; tmp_variable_buf = (char *) emalloc(variable_len); if (lpCB->GetServerVariable(lpCB->ConnID, *p, tmp_variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, *p, tmp_variable_buf); } efree(tmp_variable_buf); } p++; } PUTS("</table>"); }
static PHP_MINFO_FUNCTION(win32service) { php_info_print_table_start(); php_info_print_table_header(2, "Win32 Service support", "enabled"); php_info_print_table_row(2, "Version", PHP_WIN32SERVICE_VERSION); php_info_print_table_end(); }
/* {{{ PHP_MINFO_FUNCTION */ static PHP_MINFO_FUNCTION(rrd) { php_info_print_table_start(); php_info_print_table_header(2, "rrd tool module", "enabled"); php_info_print_table_row(2, "rrd tool module version", PHP_RRD_VERSION); php_info_print_table_row(2, "rrdtool library version", rrd_strversion()); php_info_print_table_end(); }
static PHP_MINFO_FUNCTION(tidy) { php_info_print_table_start(); php_info_print_table_header(2, "Tidy support", "enabled"); php_info_print_table_row(2, "libTidy Release", (char *)tidyReleaseDate()); php_info_print_table_row(2, "Extension Version", PHP_TIDY_VERSION " ($Id: 7a4a7e7d6a3b11be5f7a6f87e82eda4723a0208f $)"); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); }
static PHP_MINFO_FUNCTION(tidy) { php_info_print_table_start(); php_info_print_table_header(2, "Tidy support", "enabled"); php_info_print_table_row(2, "libTidy Release", (char *)tidyReleaseDate()); php_info_print_table_row(2, "Extension Version", PHP_TIDY_VERSION " ($Id: cdda540586e209c347c9a8c68fc07bbc615d8435 $)"); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); }
static PHP_MINFO_FUNCTION(amqp) /* {{{ */ { php_info_print_table_start(); php_info_print_table_header(2, "Version", PHP_AMQP_VERSION); php_info_print_table_header(2, "Revision", PHP_AMQP_REVISION); php_info_print_table_header(2, "Compiled", __DATE__ " @ " __TIME__); php_info_print_table_header(2, "AMQP protocol version", "0-9-1"); php_info_print_table_header(2, "librabbitmq version", amqp_version()); php_info_print_table_header(2, "Default max channels per connection", DEFAULT_CHANNEL_MAX); php_info_print_table_header(2, "Default max frame size", DEFAULT_FRAME_MAX); php_info_print_table_header(2, "Default heartbeats interval", DEFAULT_HEARTBEAT); DISPLAY_INI_ENTRIES(); } /* }}} */
/* {{{ PHP_MINFO_FUNCTION */ static PHP_MINFO_FUNCTION(zlib) { php_info_print_table_start(); php_info_print_table_header(2, "ZLib Support", "enabled"); php_info_print_table_row(2, "Stream Wrapper", "compress.zlib://"); php_info_print_table_row(2, "Stream Filter", "zlib.inflate, zlib.deflate"); php_info_print_table_row(2, "Compiled Version", ZLIB_VERSION); php_info_print_table_row(2, "Linked Version", (char *) zlibVersion()); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); }
/* {{{ PHP_MINFO_FUNCTION */ static PHP_MINFO_FUNCTION(pdo_mysql) { php_info_print_table_start(); php_info_print_table_header(2, "PDO Driver for MySQL", "enabled"); php_info_print_table_row(2, "Client API version", mysql_get_client_info()); php_info_print_table_end(); #ifndef PHP_WIN32 DISPLAY_INI_ENTRIES(); #endif }
PHPAPI void display_ini_entries(zend_module_entry *module) { int module_number; ELS_FETCH(); if (module) { module_number = module->module_number; } else { module_number = 0; } php_info_print_table_start(); php_info_print_table_header(3, "Directive", "Local Value", "Master Value"); zend_hash_apply_with_argument(&EG(ini_directives), (apply_func_arg_t) php_ini_displayer, (void *) (long) module_number); php_info_print_table_end(); }
/* {{{ display_ini_entries */ PHPAPI void display_ini_entries(zend_module_entry *module) { int module_number, module_number_available; if (module) { module_number = module->module_number; } else { module_number = 0; } module_number_available = module_number; zend_hash_apply_with_argument(EG(ini_directives), php_ini_available, &module_number_available); if (module_number_available == -1) { php_info_print_table_start(); php_info_print_table_header(3, "Directive", "Local Value", "Master Value"); zend_hash_apply_with_argument(EG(ini_directives), php_ini_displayer, (void *)&module_number); php_info_print_table_end(); } }
static void php_info_isapi(ZEND_MODULE_INFO_FUNC_ARGS) { char **p; char variable_buf[ISAPI_SERVER_VAR_BUF_SIZE]; DWORD variable_len; char **all_variables[] = { isapi_server_variable_names, isapi_special_server_variable_names, isapi_secure_server_variable_names, NULL }; char ***server_variable_names; LPEXTENSION_CONTROL_BLOCK lpECB; lpECB = (LPEXTENSION_CONTROL_BLOCK) SG(server_context); php_info_print_table_start(); php_info_print_table_header(2, "Server Variable", "Value"); server_variable_names = all_variables; while (*server_variable_names) { p = *server_variable_names; while (*p) { variable_len = ISAPI_SERVER_VAR_BUF_SIZE; if (lpECB->GetServerVariable(lpECB->ConnID, *p, variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, *p, variable_buf); } else if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { char *tmp_variable_buf; tmp_variable_buf = (char *) emalloc(variable_len); if (lpECB->GetServerVariable(lpECB->ConnID, *p, tmp_variable_buf, &variable_len) && variable_buf[0]) { php_info_print_table_row(2, *p, tmp_variable_buf); } efree(tmp_variable_buf); } p++; } server_variable_names++; } php_info_print_table_end(); }
PHPAPI void php_print_credits(int flag) /* {{{ */ { if (!sapi_module.phpinfo_as_text && flag & PHP_CREDITS_FULLPAGE) { php_print_info_htmlhead(); } if (!sapi_module.phpinfo_as_text) { PUTS("<h1>PHP Credits</h1>\n"); } else { PUTS("PHP Credits\n"); } if (flag & PHP_CREDITS_GROUP) { /* Group */ php_info_print_table_start(); php_info_print_table_header(1, "PHP Group"); php_info_print_table_row(1, "Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski"); php_info_print_table_end(); } if (flag & PHP_CREDITS_GENERAL) { /* Design & Concept */ php_info_print_table_start(); if (!sapi_module.phpinfo_as_text) { php_info_print_table_header(1, "Language Design & Concept"); } else { php_info_print_table_header(1, "Language Design & Concept"); } php_info_print_table_row(1, "Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger"); php_info_print_table_end(); /* PHP Language */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHP Authors"); php_info_print_table_header(2, "Contribution", "Authors"); CREDIT_LINE("Zend Scripting Language Engine", "Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov"); CREDIT_LINE("Extension Module API", "Andi Gutmans, Zeev Suraski, Andrei Zmievski"); CREDIT_LINE("UNIX Build and Modularization", "Stig Bakken, Sascha Schumann, Jani Taskinen"); CREDIT_LINE("Windows Support", "Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski, Kalle Sommer Nielsen"); CREDIT_LINE("Server API (SAPI) Abstraction Layer", "Andi Gutmans, Shane Caraveo, Zeev Suraski"); CREDIT_LINE("Streams Abstraction Layer", "Wez Furlong, Sara Golemon"); CREDIT_LINE("PHP Data Objects Layer", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky"); CREDIT_LINE("Output Handler", "Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner"); CREDIT_LINE("Consistent 64 bit support", "Anthony Ferrara, Anatol Belski"); php_info_print_table_end(); } if (flag & PHP_CREDITS_SAPI) { /* SAPI Modules */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "SAPI Modules"); php_info_print_table_header(2, "Contribution", "Authors"); #include "credits_sapi.h" php_info_print_table_end(); } if (flag & PHP_CREDITS_MODULES) { /* Modules */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "Module Authors"); php_info_print_table_header(2, "Module", "Authors"); #include "credits_ext.h" php_info_print_table_end(); } if (flag & PHP_CREDITS_DOCS) { php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHP Documentation"); CREDIT_LINE("Authors", "Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Philip Olson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey"); CREDIT_LINE("Editor", "Peter Cowburn"); CREDIT_LINE("User Note Maintainers", "Daniel P. Brown, Thiago Henrique Pojda"); CREDIT_LINE("Other Contributors", "Previously active authors, editors and other contributors are listed in the manual."); php_info_print_table_end(); } if (flag & PHP_CREDITS_QA) { php_info_print_table_start(); php_info_print_table_header(1, "PHP Quality Assurance Team"); php_info_print_table_row(1, "Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Jani Taskinen, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs"); php_info_print_table_end(); } if (flag & PHP_CREDITS_WEB) { /* Websites and infrastructure */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "Websites and Infrastructure team"); /* www., wiki., windows., master., and others, I guess pecl. too? */ CREDIT_LINE("PHP Websites Team", "Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison"); CREDIT_LINE("Event Maintainers", "Damien Seguy, Daniel P. Brown"); /* Mirroring */ CREDIT_LINE("Network Infrastructure", "Daniel P. Brown"); /* Windows build boxes and such things */ CREDIT_LINE("Windows Infrastructure", "Alex Schoenmaker"); php_info_print_table_end(); } if (!sapi_module.phpinfo_as_text && flag & PHP_CREDITS_FULLPAGE) { PUTS("</div></body></html>\n"); } }
/* {{{ PHP_MINFO_FUNCTION */ static PHP_MINFO_FUNCTION(uopz) { php_info_print_table_start(); php_info_print_table_header(2, "uopz support", "enabled"); php_info_print_table_end(); }
/* {{{ php_print_credits */ PHPAPI void php_print_credits(int flag TSRMLS_DC) { if (!sapi_module.phpinfo_as_text && flag & PHP_CREDITS_FULLPAGE) { php_print_info_htmlhead(TSRMLS_C); } if (!sapi_module.phpinfo_as_text) { PUTS("<h1>PHP Credits</h1>\n"); } else { PUTS("PHP Credits\n"); } if (flag & PHP_CREDITS_GROUP) { /* Group */ php_info_print_table_start(); php_info_print_table_header(1, "PHP Group"); php_info_print_table_row(1, "Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski"); php_info_print_table_end(); } if (flag & PHP_CREDITS_GENERAL) { /* Design & Concept */ php_info_print_table_start(); if (!sapi_module.phpinfo_as_text) { php_info_print_table_header(1, "Language Design & Concept"); } else { php_info_print_table_header(1, "Language Design & Concept"); } php_info_print_table_row(1, "Andi Gutmans, Rasmus Lerdorf, Zeev Suraski"); php_info_print_table_end(); /* PHP Language */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHP 5 Authors"); 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, Andrei Zmievski"); CREDIT_LINE("UNIX Build and Modularization", "Stig Bakken, Sascha Schumann, Jani Taskinen"); CREDIT_LINE("Win32 Port", "Shane Caraveo, Zeev Suraski, Wez Furlong"); CREDIT_LINE("Server API (SAPI) Abstraction Layer", "Andi Gutmans, Shane Caraveo, Zeev Suraski"); CREDIT_LINE("Streams Abstraction Layer", "Wez Furlong, Sara Golemon"); CREDIT_LINE("PHP Data Objects Layer", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky"); php_info_print_table_end(); } if (flag & PHP_CREDITS_SAPI) { /* SAPI Modules */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "SAPI Modules"); php_info_print_table_header(2, "Contribution", "Authors"); #include "credits_sapi.h" php_info_print_table_end(); } if (flag & PHP_CREDITS_MODULES) { /* Modules */ php_info_print_table_start(); php_info_print_table_colspan_header(2, "Module Authors"); php_info_print_table_header(2, "Module", "Authors"); #include "credits_ext.h" php_info_print_table_end(); } if (flag & PHP_CREDITS_DOCS) { php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHP Documentation"); CREDIT_LINE("Authors", "Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Georg Richter, Damien Seguy, Jakub Vrana"); CREDIT_LINE("Editor", "Philip Olson"); CREDIT_LINE("User Note Maintainers", "Friedhelm Betz, Etienne Kneuss, Nuno Lopes, Hannes Magnusson, Felipe Pena, Maciek Sokolewicz, Daniel P. Brown"); CREDIT_LINE("Other Contributors", "Previously active authors, editors and other contributors are listed in the manual."); php_info_print_table_end(); } if (flag & PHP_CREDITS_QA) { php_info_print_table_start(); php_info_print_table_header(1, "PHP Quality Assurance Team"); php_info_print_table_row(1, "Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Jani Taskinen, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena"); php_info_print_table_end(); } if (flag & PHP_CREDITS_WEB) { /* Website Team */ php_info_print_table_start(); php_info_print_table_header(1, "PHP Website Team"); php_info_print_table_row(1, "Rasmus Lerdorf, Hannes Magnusson, Philip Olson"); php_info_print_table_end(); } if (!sapi_module.phpinfo_as_text && flag & PHP_CREDITS_FULLPAGE) { PUTS("</div></body></html>\n"); } }
PHPAPI void php_print_info(int flag) { char **env,*tmp1,*tmp2; char *php_uname; int expose_php = INI_INT("expose_php"); time_t the_time; struct tm *ta, tmbuf; ELS_FETCH(); SLS_FETCH(); the_time = time(NULL); ta = php_localtime_r(&the_time, &tmbuf); PUTS("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">\n<html>\n"); if (flag & PHP_INFO_GENERAL) { char *zend_version = get_zend_version(); php_uname = php_get_uname(); PUTS("<head>"); php_info_print_style(); PUTS("<title>phpinfo()</title></head><body>"); php_info_print_box_start(1); if (expose_php) { PUTS("<a href=\"http://www.php.net/\"><img src=\""); if (SG(request_info).request_uri) { PUTS(SG(request_info).request_uri); } if ((ta->tm_mon==3) && (ta->tm_mday==1)) { PUTS("?="PHP_EGG_LOGO_GUID"\" border=0 align=\"right\" alt=\"Thies!\"></a>"); } else { PUTS("?="PHP_LOGO_GUID"\" border=0 align=\"right\" alt=\"PHP Logo\"></a>"); } } php_printf("<H1>PHP Version %s</H1>\n", PHP_VERSION); php_info_print_box_end(); php_info_print_table_start(); php_info_print_table_row(2, "System", php_uname ); php_info_print_table_row(2, "Build Date", __DATE__ ); #ifdef CONFIGURE_COMMAND php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND ); #endif if (sapi_module.pretty_name) { php_info_print_table_row(2, "Server API", sapi_module.pretty_name ); } #ifdef VIRTUAL_DIR php_info_print_table_row(2, "Virtual Directory Support", "enabled" ); #else php_info_print_table_row(2, "Virtual Directory Support", "disabled" ); #endif php_info_print_table_row(2, "Configuration File (php.ini) Path", php_ini_opened_path?php_ini_opened_path:PHP_CONFIG_FILE_PATH); #if ZEND_DEBUG php_info_print_table_row(2, "ZEND_DEBUG", "enabled" ); #else php_info_print_table_row(2, "ZEND_DEBUG", "disabled" ); #endif #ifdef ZTS php_info_print_table_row(2, "Thread Safety", "enabled" ); #else php_info_print_table_row(2, "Thread Safety", "disabled" ); #endif #if HAVE_PHP_STREAM php_info_print_table_row(2, "Experimental PHP Streams", "enabled"); #endif php_info_print_table_end(); /* Zend Engine */ php_info_print_box_start(0); if (expose_php) { PUTS("<a href=\"http://www.zend.com/\"><img src=\""); if (SG(request_info).request_uri) { PUTS(SG(request_info).request_uri); } PUTS("?="ZEND_LOGO_GUID"\" border=\"0\" align=\"right\" alt=\"Zend logo\"></a>\n"); } php_printf("This program makes use of the Zend scripting language engine:<BR>"); zend_html_puts(zend_version, strlen(zend_version)); php_printf("</BR>\n"); php_info_print_box_end(); efree(php_uname); } if ((flag & PHP_INFO_CREDITS) && expose_php) { php_info_print_hr(); PUTS("<h1 align=\"center\"><a href=\""); if (SG(request_info).request_uri) { PUTS(SG(request_info).request_uri); } PUTS("?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000\">"); PUTS("PHP 4.0 Credits"); PUTS("</a></h1>\n"); } zend_ini_sort_entries(ELS_C); if (flag & PHP_INFO_CONFIGURATION) { php_info_print_hr(); PUTS("<h1 align=\"center\">Configuration</h1>\n"); SECTION("PHP Core\n"); display_ini_entries(NULL); } if (flag & PHP_INFO_MODULES) { int show_info_func; show_info_func = 1; zend_hash_apply_with_argument(&module_registry, (int (*)(void *, void *)) _display_module_info, &show_info_func); SECTION("Additional Modules"); php_info_print_table_start(); show_info_func = 0; zend_hash_apply_with_argument(&module_registry, (int (*)(void *, void *)) _display_module_info, &show_info_func); php_info_print_table_end(); } if (flag & PHP_INFO_ENVIRONMENT) { SECTION("Environment"); php_info_print_table_start(); 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); } php_info_print_table_end(); } if (flag & PHP_INFO_VARIABLES) { pval **data; SECTION("PHP Variables"); php_info_print_table_start(); php_info_print_table_header(2, "Variable", "Value"); if (zend_hash_find(&EG(symbol_table), "PHP_SELF", sizeof("PHP_SELF"), (void **) &data) != FAILURE) { php_info_print_table_row(2, "PHP_SELF", (*data)->value.str.val); } if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_TYPE", sizeof("PHP_AUTH_TYPE"), (void **) &data) != FAILURE) { php_info_print_table_row(2, "PHP_AUTH_TYPE", (*data)->value.str.val); } if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_USER", sizeof("PHP_AUTH_USER"), (void **) &data) != FAILURE) { php_info_print_table_row(2, "PHP_AUTH_USER", (*data)->value.str.val); } if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE) { php_info_print_table_row(2, "PHP_AUTH_PW", (*data)->value.str.val); } php_print_gpcse_array("HTTP_GET_VARS", sizeof("HTTP_GET_VARS")-1 ELS_CC); php_print_gpcse_array("HTTP_POST_VARS", sizeof("HTTP_POST_VARS")-1 ELS_CC); php_print_gpcse_array("HTTP_POST_FILES", sizeof("HTTP_POST_FILES")-1 ELS_CC); php_print_gpcse_array("HTTP_COOKIE_VARS", sizeof("HTTP_COOKIE_VARS")-1 ELS_CC); php_print_gpcse_array("HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS")-1 ELS_CC); php_print_gpcse_array("HTTP_ENV_VARS", sizeof("HTTP_ENV_VARS")-1 ELS_CC); php_info_print_table_end(); } if (flag & PHP_INFO_LICENSE) { SECTION("PHP License"); php_info_print_box_start(0); PUTS("<P>\n"); PUTS("This program is free software; you can redistribute it and/or modify "); PUTS("it under the terms of the PHP License as published by the PHP Group "); PUTS("and included in the distribution in the file: LICENSE\n"); PUTS("</P>\n"); PUTS("<P>"); PUTS("This program is distributed in the hope that it will be useful, "); PUTS("but WITHOUT ANY WARRANTY; without even the implied warranty of "); PUTS("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); PUTS("</P>\n"); PUTS("<P>"); PUTS("If you did not receive a copy of the PHP license, or have any questions about "); PUTS("PHP licensing, please contact [email protected].\n"); PUTS("</P>\n"); php_info_print_box_end(); } PUTS("</BODY></HTML>"); }