Example #1
0
 /**
  * Display a HTML report about systeme information / configuration
  *
  **/
 function showSystemInformations()
 {
     global $DB, $LANG, $CFG_GLPI;
     echo "<div class='center' id='tabsbody'>";
     echo "<form name='form' action=\"" . getItemTypeFormURL(__CLASS__) . "\" method='post'>";
     echo "<input type='hidden' name='id' value='" . $CFG_GLPI["id"] . "'>";
     echo "<table class='tab_cadre_fixe'>";
     echo "<tr><th colspan='4'>" . $LANG['setup'][70] . "</th></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . $LANG['setup'][102] . " &nbsp;:</td><td>";
     $values[1] = $LANG['setup'][103];
     $values[2] = $LANG['setup'][104];
     $values[3] = $LANG['setup'][105];
     $values[4] = $LANG['setup'][106];
     $values[5] = $LANG['setup'][107];
     Dropdown::showFromArray('event_loglevel', $values, array('value' => $CFG_GLPI["event_loglevel"]));
     echo "</td><td>" . $LANG['setup'][101] . "&nbsp;:</td><td>";
     Dropdown::showInteger('cron_limit', $CFG_GLPI["cron_limit"], 1, 30);
     echo "</td></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td> " . $LANG['setup'][185] . "&nbsp;:</td><td>";
     Dropdown::showYesNo("use_log_in_files", $CFG_GLPI["use_log_in_files"]);
     echo "</td><td> " . $LANG['setup'][801] . "&nbsp;:</td><td>";
     $active = DBConnection::isDBSlaveActive();
     Dropdown::showYesNo("_dbslave_status", $active);
     echo "</td></tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td colspan='4' class='center b'>" . $LANG['setup'][306] . ' - ' . $LANG['setup'][400] . "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . $LANG['common'][52] . "&nbsp;:</td>";
     echo "<td><input type='text' name='proxy_name' value='" . $CFG_GLPI["proxy_name"] . "'></td>";
     echo "<td>" . $LANG['setup'][175] . "&nbsp;:</td>";
     echo "<td><input type='text' name='proxy_port' value='" . $CFG_GLPI["proxy_port"] . "'></td>";
     echo "</tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . $LANG['login'][6] . "&nbsp;:</td>";
     echo "<td><input type='text' name='proxy_user' value='" . $CFG_GLPI["proxy_user"] . "'></td>";
     echo "<td>" . $LANG['login'][7] . "&nbsp;:</td>";
     echo "<td><input type='password' name='proxy_passwd' value='' autocomplete='off'></td>";
     echo "</tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td colspan='4' class='center'>";
     echo "<input type='submit' name='update' class='submit' value=\"" . $LANG['buttons'][2] . "\"></td>";
     echo "</tr>";
     echo "</table>";
     echo "</form>";
     $width = 128;
     echo "<table class='tab_cadre_fixe'>";
     echo "<tr><th>" . $LANG['setup'][721] . "</th></tr>";
     echo "<tr class='tab_bg_1'><td><pre>[code]\n&nbsp;\n";
     $oldlang = $_SESSION['glpilanguage'];
     loadLanguage('en_GB');
     echo "GLPI " . $CFG_GLPI['version'] . " (" . $CFG_GLPI['root_doc'] . " => " . dirname(dirname($_SERVER["SCRIPT_FILENAME"])) . ")\n";
     echo "\n</pre></td></tr>";
     echo "<tr><th>" . $LANG['common'][52] . "</th></tr>\n";
     echo "<tr class='tab_bg_1'><td><pre>\n&nbsp;\n";
     echo wordwrap($LANG['setup'][5] . "&nbsp;: " . php_uname() . "\n", $width, "\n\t");
     $exts = get_loaded_extensions();
     sort($exts);
     echo wordwrap("PHP " . phpversion() . " (" . implode(', ', $exts) . ")\n", $width, "\n\t");
     $msg = $LANG['common'][12] . ": ";
     foreach (array('memory_limit', 'max_execution_time', 'safe_mode', 'session.save_handler', 'post_max_size', 'upload_max_filesize') as $key) {
         $msg .= $key . '="' . ini_get($key) . '" ';
     }
     echo wordwrap($msg . "\n", $width, "\n\t");
     $msg = $LANG['Menu'][4] . ": ";
     if (isset($_SERVER["SERVER_SOFTWARE"])) {
         $msg .= $_SERVER["SERVER_SOFTWARE"];
     }
     if (isset($_SERVER["SERVER_SIGNATURE"])) {
         $msg .= ' (' . html_clean($_SERVER["SERVER_SIGNATURE"]) . ')';
     }
     echo wordwrap($msg . "\n", $width, "\n\t");
     if (isset($_SERVER["HTTP_USER_AGENT"])) {
         echo "\t" . $_SERVER["HTTP_USER_AGENT"] . "\n";
     }
     $version = "???";
     foreach ($DB->request('SELECT VERSION() as ver') as $data) {
         $version = $data['ver'];
     }
     echo "MySQL: {$version} (" . $DB->dbuser . "@" . $DB->dbhost . "/" . $DB->dbdefault . ")\n\n";
     checkWriteAccessToDirs(true);
     foreach ($CFG_GLPI["systeminformations_types"] as $type) {
         $tmp = new $type();
         $tmp->showSystemInformations($width);
     }
     loadLanguage($oldlang);
     echo "\n</pre></td></tr>";
     echo "<tr class='tab_bg_1'><td>[/code]\n</td></tr>";
     echo "<tr class='tab_bg_2'><th>" . $LANG['setup'][722] . "</th></tr>\n";
     echo "</table></div>\n";
 }
/**
 * Common Checks needed to use GLPI
 *
 * @return 2 : creation error 1 : delete error 0: OK
**/
function commonCheckForUseGLPI()
{
    global $LANG;
    $error = 0;
    // Title
    echo "<tr><th>" . $LANG['install'][6] . "</th><th >" . $LANG['install'][7] . "</th></tr>";
    // Parser test
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][8] . "</td>";
    // PHP Version  - exclude PHP3, PHP 4 and zend.ze1 compatibility
    if (substr(phpversion(), 0, 1) == "5") {
        // PHP > 5 ok, now check PHP zend.ze1_compatibility_mode
        if (ini_get("zend.ze1_compatibility_mode") == 1) {
            $error = 2;
            echo "<td class='red'>\n               <img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][10] . "</td></tr>";
        } else {
            echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][11] . "\"\n                    title=\"" . $LANG['install'][11] . "\"></td></tr>";
        }
    } else {
        // PHP <5
        $error = 2;
        echo "<td class='red'>\n            <img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][9] . "</td></tr>";
    }
    // Check for mysql extension ni php
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][71] . "</td>";
    if (!function_exists("mysql_query")) {
        echo "<td class='red'>";
        echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][72] . "</td></tr>";
        $error = 2;
    } else {
        echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][73] . "\" title=\"" . $LANG['install'][73] . "\"></td></tr>";
    }
    // session test
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][12] . "</td>";
    // check whether session are enabled at all!!
    if (!extension_loaded('session')) {
        $error = 2;
        echo "<td class='red b'>" . $LANG['install'][13] . "</td></tr>";
    } else {
        if (isset($_SESSION["Test_session_GLPI"]) && $_SESSION["Test_session_GLPI"] == 1 || isset($_SESSION["glpi_currenttime"])) {
            // From Update
            echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][14] . "\" title=\"" . $LANG['install'][14] . "\"></td></tr>";
        } else {
            if ($error != 2) {
                echo "<td class='red'>";
                echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][15] . "</td></tr>";
                $error = 1;
            }
        }
    }
    //Test for session auto_start
    if (ini_get('session.auto_start') == 1) {
        echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][68] . "</td>";
        echo "<td class='red'>";
        echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][69] . "</td></tr>";
        $error = 2;
    }
    //Test for option session use trans_id loaded or not.
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][74] . "</td>";
    if (isset($_POST[session_name()]) || isset($_GET[session_name()])) {
        echo "<td class='red'>";
        echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][75] . "</td></tr>";
        $error = 2;
    } else {
        echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][76] . "\" title=\"" . $LANG['install'][76] . "\"></td></tr>";
    }
    //Test for sybase extension loaded or not.
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][65] . "</td>";
    if (ini_get('magic_quotes_sybase')) {
        echo "<td class='red'>";
        echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][66] . "</td></tr>";
        $error = 2;
    } else {
        echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][67] . "\" title=\"" . $LANG['install'][67] . "\"></td></tr>";
    }
    //Test for json_encode function.
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][102] . "</td>";
    if (!function_exists('json_encode') || !function_exists('json_decode')) {
        echo "<td><img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][103] . "></td></tr>";
        $error = 2;
    } else {
        echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][85] . "\" title=\"" . $LANG['install'][85] . "\"></td></tr>";
    }
    //Test for mbstring extension.
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][104] . "</td>";
    if (!extension_loaded('mbstring')) {
        echo "<td><img src='" . GLPI_ROOT . "/pics/redbutton.png'>" . $LANG['install'][105] . "></td></tr>";
        $error = 2;
    } else {
        echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][85] . "\" title=\"" . $LANG['install'][85] . "\"></td></tr>";
    }
    // memory test
    echo "<tr class='tab_bg_1'><td class='left b'>" . $LANG['install'][86] . "</td>";
    $mem = getMemoryLimit();
    if ($mem == "") {
        // memory_limit non compilé -> no memory limit
        echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][95] . " - " . $LANG['install'][89] . "\" title=\"" . $LANG['install'][95] . " - " . $LANG['install'][89] . "\"></td></tr>";
    } else {
        if ($mem == "-1") {
            // memory_limit compilé mais illimité
            echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][96] . " - " . $LANG['install'][89] . "\" title=\"" . $LANG['install'][96] . " - " . $LANG['install'][89] . "\"></td></tr>";
        } else {
            if ($mem < 64 * 1024 * 1024) {
                // memoire insuffisante
                $showmem = $mem / 1048576;
                echo "<td class='red'><img src='" . GLPI_ROOT . "/pics/redbutton.png'><b>" . $LANG['install'][87] . " {$showmem} Mo</b><br>" . $LANG['install'][88] . "<br>" . $LANG['install'][90] . "</td></tr>";
                $error = 2;
            } else {
                // on a sufisament de mémoire on passe à la suite
                echo "<td><img src='" . GLPI_ROOT . "/pics/greenbutton.png' alt=\"" . $LANG['install'][91] . " - " . $LANG['install'][89] . "\" title=\"" . $LANG['install'][91] . " - " . $LANG['install'][89] . "\"></td></tr>";
            }
        }
    }
    $suberr = checkWriteAccessToDirs();
    return $suberr ? $suberr : $error;
}