예제 #1
0
set_exception_handler(function ($ex) use(&$result) {
    $result['code'] = -1;
    $result['msg'] = 'Exception';
    $result['data'] = ['code' => $ex->getCode(), 'msg' => $ex->getMessage(), 'file' => ['name' => $ex->getFile(), 'line' => $ex->getLine()]];
});
function getMemoryLimit() : int
{
    $limit = trim(ini_get('memory_limit'));
    if (1 === preg_match('/^(\\d+)(.)$/', $limit, $matches)) {
        if (isset($matches[2])) {
            switch (trim(strtoupper($matches[2]))) {
                case 'K':
                    $limit = (int) $matches[1] * 1024;
                    break;
                case 'M':
                    $limit = (int) $matches[1] * 1024 * 1024;
                    break;
            }
        }
    }
    return (int) $limit;
}
// execute code
$start = microtime(true);
$memoryBefore = memory_get_usage();
eval($_POST['code']);
$end = microtime(true);
$memoryAfter = memory_get_usage();
$result['code'] = 0;
$result['data'] = ['content' => ob_get_contents(), 'time' => ['start' => $start, 'end' => $end, 'duration' => $end - $start], 'memory' => ['allocated' => ['before' => $memoryBefore, 'after' => $memoryAfter, 'difference' => $memoryAfter - $memoryBefore], 'limit' => getMemoryLimit()]];
$result['msg'] = 'OK';
예제 #2
0
/**
 * 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;
}
예제 #3
0
<?php

/**
 * delete selected files
 * @author Logan Cai (cailongqun [at] yahoo [dot] com [dot] cn)
 * @link www.phpletter.com
 * @since 22/April/2007
 *
 */
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php";
if (!empty($_GET['path']) && file_exists($_GET['path']) && is_file($_GET['path']) && isUnderRoot($_GET['path'])) {
    $path = $_GET['path'];
    //check if the file size
    $fileSize = @filesize($path);
    if ($fileSize > getMemoryLimit()) {
        //larger then the php memory limit, redirect to the file
        header('Location: ' . $path);
        exit;
    } else {
        //open it up and send out with php
        downloadFile($path);
    }
} else {
    die(ERR_DOWNLOAD_FILE_NOT_FOUND);
}
예제 #4
0
  * Do a little error checking to make sure that the file exists and that the server can process it
  */
 //echo $path; exit; // Testing
 if (!file_exists($path) or is_dir($path) == true) {
     $path = BASE_PATH . "/assets/images/blank.png";
     // File doesn't exist or a folder was returned - use blank.png
     $config['cacheImages'] = 0;
     // Override caching
 } else {
     if ($offSiteRequest == true) {
         $path = BASE_PATH . "/assets/images/link.png";
         // External linking detected - use link.png
         $config['cacheImages'] = 0;
         // Override caching
     } else {
         if (figure_memory_needed($path) > getMemoryLimit()) {
             $path = BASE_PATH . "/assets/images/error.png";
             // Not enough memory - use error.png
             $config['cacheImages'] = 0;
             // Override caching
         }
     }
 }
 /* // Testing
 		echo 'path: '.$path.'<br>';
 		echo 'quality: '.$quality.'<br>';
 		echo 'crop: '.$crop.'<br>';
 		echo 'hcrop: '.$hcrop.'<br>';
 		echo 'sharpen: '.$sharpen.'<br>';
 		echo 'watermark: '.$watermark.'<br>';
 		exit;