0,0 → 1,331 |
<?php |
// phpSysInfo - A PHP System Information Script |
// http://phpsysinfo.sourceforge.net/ |
// This program is free software; you can redistribute it and/or |
// modify it under the terms of the GNU General Public License |
// as published by the Free Software Foundation; either version 2 |
// of the License, or (at your option) any later version. |
// This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. |
// You should have received a copy of the GNU General Public License |
// along with this program; if not, write to the Free Software |
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
// $Id: index.php,v 1.122.4.1 2007/08/19 09:21:57 xqus Exp $ |
// phpsysinfo release version number |
$VERSION = "2.5.4"; |
$startTime = array_sum( explode( " ", microtime() ) ); |
|
define('APP_ROOT', dirname(__FILE__)); |
define('IN_PHPSYSINFO', true); |
|
ini_set('magic_quotes_runtime', 'off'); |
ini_set('register_globals', 'off'); |
// ini_set('display_errors','on'); |
|
require_once(APP_ROOT . '/includes/class.error.inc.php'); |
$error = new Error; |
|
// Figure out which OS where running on, and detect support |
if ( file_exists( APP_ROOT . '/includes/os/class.' . PHP_OS . '.inc.php' ) ) { |
} else { |
$error->addError('include(class.' . PHP_OS . '.php.inc)' , PHP_OS . ' is not currently supported', __LINE__, __FILE__ ); |
} |
|
if (!extension_loaded('xml')) { |
$error->addError('extension_loaded(xml)', 'phpsysinfo requires the xml module for php to work', __LINE__, __FILE__); |
} |
if (!extension_loaded('pcre')) { |
$error->addError('extension_loaded(pcre)', 'phpsysinfo requires the pcre module for php to work', __LINE__, __FILE__); |
} |
|
if (!file_exists(APP_ROOT . '/config.php')) { |
$error->addError('file_exists(config.php)', 'config.php does not exist in the phpsysinfo directory.', __LINE__, __FILE__); |
} else { |
require_once(APP_ROOT . '/config.php'); // get the config file |
} |
|
if ( !empty( $sensor_program ) ) { |
$sensor_program = basename( $sensor_program ); |
if( !file_exists( APP_ROOT . '/includes/mb/class.' . $sensor_program . '.inc.php' ) ) { |
$error->addError('include(class.' . htmlspecialchars($sensor_program, ENT_QUOTES) . '.inc.php)', 'specified sensor programm is not supported', __LINE__, __FILE__ ); |
} |
} |
|
if ( !empty( $hddtemp_avail ) && $hddtemp_avail != "tcp" && $hddtemp_avail != "suid" ) { |
$error->addError('include(class.hddtemp.inc.php)', 'bad configuration in config.php for $hddtemp_avail', __LINE__, __FILE__ ); |
} |
|
if( $error->ErrorsExist() ) { |
echo $error->ErrorsAsHTML(); |
exit; |
} |
|
require_once(APP_ROOT . '/includes/common_functions.php'); // Set of common functions used through out the app |
|
// commented for security |
// Check to see if where running inside of phpGroupWare |
//if (file_exists("../header.inc.php") && isset($_REQUEST['sessionid']) && $_REQUEST['sessionid'] && $_REQUEST['kp3'] && $_REQUEST['domain']) { |
// define('PHPGROUPWARE', 1); |
// $phpgw_info['flags'] = array('currentapp' => 'phpsysinfo-dev'); |
// include('../header.inc.php'); |
//} else { |
// define('PHPGROUPWARE', 0); |
//} |
|
// DEFINE TEMPLATE_SET |
if (isset($_POST['template'])) { |
$template = $_POST['template']; |
} elseif (isset($_GET['template'])) { |
$template = $_GET['template']; |
} elseif (isset($_COOKIE['template'])) { |
$template = $_COOKIE['template']; |
} else { |
$template = $default_template; |
} |
|
// check to see if we have a random |
if ($template == 'random') { |
$buf = gdc( APP_ROOT . "/templates/" ); |
$template = $buf[array_rand($buf, 1)]; |
} |
|
if ($template != 'xml' && $template != 'wml') { |
// figure out if the template exists |
$template = basename($template); |
if (!file_exists(APP_ROOT . "/templates/" . $template)) { |
// use default if not exists. |
$template = $default_template; |
} |
// Store the current template name in a cookie, set expire date to 30 days later |
// if template is xml then skip |
// setcookie("template", $template, (time() + 60 * 60 * 24 * 30)); |
// $_COOKIE['template'] = $template; //update COOKIE Var |
} |
|
// get our current language |
// default to english, but this is negotiable. |
if ($template == "wml") { |
$lng = "en"; |
} elseif (isset($_POST['lng'])) { |
$lng = $_POST['lng']; |
} elseif (isset($_GET['lng'])) { |
$lng = $_GET['lng']; |
} elseif (isset($_COOKIE['lng'])) { |
$lng = $_COOKIE['lng']; |
} else { |
$lng = $default_lng; |
} |
|
if ($lng == 'browser') { |
// see if the browser knows the right languange. |
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { |
$plng = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); |
if (count($plng) > 0) { |
while (list($k, $v) = each($plng)) { |
$k = explode(';', $v, 1); |
$k = explode('-', $k[0]); |
if (file_exists(APP_ROOT . '/includes/lang/' . $k[0] . '.php')) { |
$lng = $k[0]; |
break; |
} |
} |
} |
} |
} |
|
//Add for Alcasar : 'fr' or 'en' only because some variables aren't defined in other languages |
if($lng != 'fr') $lng = "en"; |
|
$lng = basename($lng); |
if (file_exists(APP_ROOT . '/includes/lang/' . $lng . '.php')) { |
//$charset = 'iso-8859-1'; |
$charset = 'utf-8'; //modif fait pour integration alcasar |
require_once(APP_ROOT . '/includes/lang/' . $lng . '.php'); // get our language include |
// Store the current language selection in a cookie, set expire date to 30 days later |
// setcookie("lng", $lng, (time() + 60 * 60 * 24 * 30)); |
// $_COOKIE['lng'] = $lng; //update COOKIE Var |
} else { |
$error->addError('include(' . $lng . ')', 'we do not support this language', __LINE__, __FILE__ ); |
$lng = $default_lng; |
} |
|
// include the files and create the instances |
define('TEMPLATE_SET', $template); |
require_once( APP_ROOT . '/includes/os/class.' . PHP_OS . '.inc.php' ); |
$sysinfo = new sysinfo; |
if( !empty( $sensor_program ) ) { |
require_once(APP_ROOT . '/includes/mb/class.' . $sensor_program . '.inc.php'); |
$mbinfo = new mbinfo; |
} |
if ( !empty($hddtemp_avail ) ) { |
require_once(APP_ROOT . '/includes/mb/class.hddtemp.inc.php'); |
} |
|
require_once(APP_ROOT . '/includes/xml/vitals.php'); |
require_once(APP_ROOT . '/includes/xml/network.php'); |
require_once(APP_ROOT . '/includes/xml/hardware.php'); |
require_once(APP_ROOT . '/includes/xml/portail.php'); |
//require_once(APP_ROOT . '/includes/xml/utilisateur.php'); |
require_once(APP_ROOT . '/includes/xml/memory.php'); |
require_once(APP_ROOT . '/includes/xml/filesystems.php'); |
require_once(APP_ROOT . '/includes/xml/mbinfo.php'); |
require_once(APP_ROOT . '/includes/xml/hddtemp.php'); |
|
// build the xml |
$xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; |
$xml .= "<!DOCTYPE phpsysinfo SYSTEM \"phpsysinfo.dtd\">\n\n"; |
$xml .= created_by(); |
$xml .= "<phpsysinfo>\n"; |
$xml .= " <Generation version=\"$VERSION\" timestamp=\"" . time() . "\"/>\n"; |
$xml .= xml_vitals(); |
$xml .= xml_network(); |
$xml .= xml_hardware(); |
$xml .= xml_portail(); |
$xml .= xml_memory(); |
$xml .= xml_filesystems(); |
if ( !empty( $sensor_program ) ) { |
$xml .= xml_mbinfo(); |
} |
if ( !empty($hddtemp_avail ) ) { |
$hddtemp = new hddtemp; |
$xml .= xml_hddtemp(); |
} |
$xml .= "</phpsysinfo>"; |
replace_specialchars($xml); |
|
// output |
if (TEMPLATE_SET == 'xml') { |
// just printout the XML and exit |
header("Content-Type: text/xml\n\n"); |
print $xml; |
} elseif (TEMPLATE_SET == 'wml') { |
require_once(APP_ROOT . '/includes/XPath.class.php'); |
$XPath = new XPath(); |
$XPath->importFromString($xml); |
|
header("Content-type: text/vnd.wap.wml; charset=iso-8859-1"); |
header(""); |
header("Cache-Control: no-cache, must-revalidate"); |
header("Pragma: no-cache"); |
|
echo "<?xml version='1.0' encoding='iso-8859-1'?>\n"; |
echo "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\" >\n"; |
echo "<wml>\n"; |
echo "<card id=\"start\" title=\"phpSysInfo - Menu\">\n"; |
echo "<p><a href=\"#vitals\">" . $text['vitals'] . "</a></p>\n"; |
echo "<p><a href=\"#network\">" . $text['netusage'] . "</a></p>\n"; |
echo "<p><a href=\"#memory\">" . $text['memusage'] . "</a></p>\n"; |
echo "<p><a href=\"#filesystem\">" . $text['fs'] . "</a></p>\n"; |
if (!empty($sensor_program) || (isset($hddtemp_avail) && $hddtemp_avail)) { |
echo "<p><a href=\"#temp\">" . $text['temperature'] . "</a></p>\n"; |
} |
if (!empty($sensor_program)) { |
echo "<p><a href=\"#fans\">" . $text['fans'] . "</a></p>\n"; |
echo "<p><a href=\"#volt\">" . $text['voltage'] . "</a></p>\n"; |
} |
echo "</card>\n"; |
echo wml_vitals(); |
echo wml_network(); |
echo wml_memory(); |
echo wml_filesystem(); |
|
$temp = ""; |
if (!empty($sensor_program)) { |
echo wml_mbfans(); |
echo wml_mbvoltage(); |
$temp .= wml_mbtemp(); |
} |
if (isset($hddtemp_avail) && $hddtemp_avail) |
if ($XPath->match("/phpsysinfo/HDDTemp/Item")) |
$temp .= wml_hddtemp(); |
if(strlen($temp) > 0) |
echo "<card id=\"temp\" title=\"" . $text['temperature'] . "\">\n" . $temp . "</card>\n"; |
echo "</wml>\n"; |
|
} else { |
$image_height = get_gif_image_height(APP_ROOT . '/templates/' . TEMPLATE_SET . '/images/bar_middle.gif'); |
define('BAR_HEIGHT', $image_height); |
|
// if (PHPGROUPWARE != 1) { |
require_once(APP_ROOT . '/includes/class.Template.inc.php'); // template library |
// } |
// fire up the template engine |
$tpl = new Template(APP_ROOT . '/templates/' . TEMPLATE_SET); |
$tpl->set_file(array('form' => 'form.tpl')); |
// print out a box of information |
function makebox ($title, $content) |
{ |
if (empty($content)) { |
return ""; |
} else { |
global $webpath; |
$textdir = direction(); |
$t = new Template(APP_ROOT . '/templates/' . TEMPLATE_SET); |
$t->set_file(array('box' => 'box.tpl')); |
$t->set_var('title', $title); |
$t->set_var('content', $content); |
$t->set_var('webpath', $webpath); |
$t->set_var('text_dir', $textdir['direction']); |
return $t->parse('out', 'box'); |
} |
} |
// Fire off the XPath class |
require_once(APP_ROOT . '/includes/XPath.class.php'); |
$XPath = new XPath(); |
$XPath->importFromString($xml); |
// let the page begin. |
require_once(APP_ROOT . '/includes/system_header.php'); |
|
$tpl->set_var('title', $text['title'] . ': ' . $XPath->getData('/phpsysinfo/Vitals/Hostname') . ' (' . $XPath->getData('/phpsysinfo/Vitals/IPAddr') . ')'); |
$tpl->set_var('vitals', makebox($text['vitals'], html_vitals())); |
// rajout pour integrer les utilisateurs du portail captif |
$tpl->set_var('portail', makebox($text['portail'], html_portail())); |
// $tpl->set_var('utilisateur', makebox($text['portail'], html_utilisateur())); |
$tpl->set_var('memory', makebox($text['memusage'], html_memory())); |
$tpl->set_var('filesystems', makebox($text['fs'], html_filesystems())); |
$tpl->set_var('network', makebox($text['netusage'], html_network())); |
$tpl->set_var('hardware', makebox($text['hardware'], html_hardware())); |
// Timo van Roermund: change the condition for showing the temperature, voltage and fans section |
$html_temp = ""; |
if (!empty($sensor_program)) { |
if ($XPath->match("/phpsysinfo/MBinfo/Temperature/Item")) { |
$html_temp = html_mbtemp(); |
} |
if ($XPath->match("/phpsysinfo/MBinfo/Fans/Item")) { |
$tpl->set_var('mbfans', makebox($text['fans'], html_mbfans())); |
} else { |
$tpl->set_var('mbfans', ''); |
}; |
if ($XPath->match("/phpsysinfo/MBinfo/Voltage/Item")) { |
$tpl->set_var('mbvoltage', makebox($text['voltage'], html_mbvoltage())); |
} else { |
$tpl->set_var('mbvoltage', ''); |
}; |
} |
if (isset($hddtemp_avail) && $hddtemp_avail) { |
if ($XPath->match("/phpsysinfo/HDDTemp/Item")) { |
$html_temp .= html_hddtemp(); |
}; |
} |
if (strlen($html_temp) > 0) { |
$tpl->set_var('mbtemp', makebox($text['temperature'], "\n<table width=\"100%\">\n" . $html_temp . "</table>\n")); |
} |
|
if ( $error->ErrorsExist() && isset($showerrors) && $showerrors ) { |
$tpl->set_var('errors', makebox("ERRORS", $error->ErrorsAsHTML() )); |
} |
|
// parse our the template |
$tpl->pfp('out', 'form'); |
|
// finally our print our footer |
// if (PHPGROUPWARE == 1) { |
// $phpgw->common->phpgw_footer(); |
// } else { |
// require_once(APP_ROOT . '/includes/system_footer.php'); |
// } |
} |
|
?> |