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';
/** * 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; }
<?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); }
* 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;