(\s+|\s$)/', " => ", $var_dump); $var_dump = htmlspecialchars($var_dump); $var_dump = preg_replace("/(=>)/", '$1', $var_dump); ob_end_clean(); if (!empty($name)) { $fn_name = explode(",", $name[1]); $fn_name = array_shift($fn_name); } else { $fn_name = "EVAL"; } if ($_bg) { $bg = 'style="background: #' . $_bg . ';"'; } else { $bg = ""; } $var_dump = '
' . $var_dump . '
' . $var_dump . '
' . $var_export . '
' . htmlentities($var_dump, ENT_QUOTES) . '
' . $var_dump . '
' . $var_dump . '
' . $stat . ""; ob_end_clean(); return $stat; } public static function getDocumentInfo() { global $AVE_Template; $_arr = [ "DOC" => "/admin/index.php?do=docs&action=edit&Id=", "RUBRIC" => "/admin/index.php?do=rubs&action=edit&Id=", "BLOCKS" => "/admin/index.php?do=blocks&action=edit&id=", "SYSBLOCK" => "/admin/index.php?do=sysblocks&action=edit&id=", "REQUESTS" => "/admin/index.php?do=request&action=edit&Id=", "NAVIAGTIONS" => "/admin/index.php?do=navigation&action=templates&navigation_id=", ]; // ИСПРАВЛЕНИЕ : Безопасно получаем 'id' из $_REQUEST $doc = get_document($_REQUEST["id"] ?? ""); $_edit = []; // ИСПРАВЛЕНИЕ : Проверяем, что $doc содержит данные и нужные ключи if (!empty($doc) && isset($doc["Id"], $doc["rubric_id"])) { $_edit["DOC"][$doc["Id"]] = $_arr["DOC"] . $doc["Id"]; $_edit["RUBRIC"][$doc["rubric_id"]] = $_arr["RUBRIC"] . $doc["rubric_id"]; } // ИСПРАВЛЕНИЕ : Проверяем, что $GLOBALS['block_generate'] существует и является массивом/объектом if (isset($GLOBALS["block_generate"]) && (is_array($GLOBALS["block_generate"]) || $GLOBALS["block_generate"] instanceof Traversable)) { foreach ($GLOBALS["block_generate"] as $k => $v) { if (!in_array($k, array_keys($_arr))) { continue; } // Защита внутреннего цикла if (is_array($v) || $v instanceof Traversable) { foreach ($v as $key => $value) { $_edit[$k][$key] = $_arr[$k] . $key; } } } } $AVE_Template->assign("edit", $_edit); $AVE_Template->assign("session", session_id()); $return = $AVE_Template->fetch(BASE_DIR . "/lib/debug/debug.tpl"); return $return; } /** * Вывод отладочной информации * Поддерживает режимы: off, full, tpl * @param string|null $force_mode Принудительный режим * @return string */ public static function displayInfo($force_mode = null): string { global $AVE_DB; // 1. ОПРЕДЕЛЕНИЕ РЕЖИМА (Паблик vs Админка) if ($force_mode !== null) { $mode = $force_mode; } elseif (defined("ACP") && defined("PROFILING_ADMIN")) { // Режим для панели управления $mode = PROFILING_ADMIN; } elseif (defined("PROFILING")) { // Режим для публичной части $mode = PROFILING; } else { $mode = "off"; } // 2. ЕСЛИ ВЫКЛЮЧЕНО if ($mode === "off" || $mode === false || $mode === "0") { return ""; } // РЕЖИМ ТОЛЬКО ШАБЛОН if ($mode === "tpl") { $id = 'stats_plate_' . uniqid(); return '