"Fatal error", E_PARSE => "Parse error", ); $e = error_get_last(); if(is_null($e) === false && isset($arErrorType[$e['type']])) { ob_end_clean(); echo "

".GetMessage("php_cmd_error")." 

"; echo ''.$arErrorType[$e['type']].': '.htmlspecialcharsbx($e['message']).' in '.htmlspecialcharsbx($e['file']).' on line '.htmlspecialcharsbx($e['line']).''; } else { global $DB; if( isset($DB) && is_object($DB) && $DB->GetErrorMessage() != '' ) { ob_end_clean(); echo "

".GetMessage("php_cmd_error")." 

"; echo 'Query Error: '.htmlspecialcharsbx($DB->GetErrorSQL()).' ['.htmlspecialcharsbx($DB->GetErrorMessage()).']'; } } } function fancy_output($content) { if (isTextMode()) { $flags = ENT_COMPAT; if (defined('ENT_SUBSTITUTE')) $flags |= ENT_SUBSTITUTE; else $flags |= ENT_IGNORE; return sprintf('

%s
', htmlspecialcharsbx($content, $flags)); } return sprintf('

%s', $content); } function isTextMode() { return (isset($_POST['result_as_text']) && $_POST['result_as_text'] === 'y'); } require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); define("HELP_FILE", "utilities/php_command_line.php"); /** * @global \CUser $USER * @global \CMain $APPLICATION **/ if(!$USER->CanDoOperation('view_other_settings')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $isAdmin = $USER->CanDoOperation('edit_php'); IncludeModuleLangFile(__FILE__); $remove = 0; if (isset($_REQUEST["remove"]) && preg_match('/^tab(\d+)$/', $_REQUEST["remove"], $match) && check_bitrix_sessid()) { $remove = $match[1]; } if (isset($_REQUEST["query_count"]) && $_REQUEST["query_count"] > 1 && check_bitrix_sessid()) { $query_count = intval($_REQUEST["query_count"]); CUserOptions::SetOption("php_command_line", "count", $query_count); } $query_count = CUserOptions::GetOption("php_command_line", "count", 1); if ($query_count <= 1) $remove = 0; if (isset($_REQUEST["save"]) && check_bitrix_sessid()) { CUtil::JSPostUnescape(); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php"); $i = 1; while (isset($_POST["query".$i])) { $saved = CUserOptions::GetOption("php_command_line", "query".$i, ''); if ($saved !== $_POST["query".$i]) { CUserOptions::SetOption("php_command_line", "query".$i, $_POST["query".$i]); } $i++; } while(CUserOptions::GetOption("php_command_line", "query".$i, '') <> '') { CUserOptions::DeleteOption("php_command_line", "query".$i); $i++; } echo "saved"; require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin_js.php"); die(); } if( $_SERVER['REQUEST_METHOD'] == 'POST' && $_POST["ajax"] === "y" && !isset($_POST["add"]) && !$remove ) { CUtil::JSPostUnescape(); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php"); if( $_POST['query'] <> '' && $isAdmin && check_bitrix_sessid() ) { printf('

%s

', getMessage('php_cmd_result')); if (isTextMode()) ini_set('html_errors', 0); ob_start('fancy_output'); $query = rtrim($_POST['query'], ";\x20\n").";\n"; $stime = microtime(1); eval($query); ob_end_flush(); printf("
".GetMessage("php_cmd_exec_time")." %0.6f", microtime(1) - $stime); } require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin_js.php"); die(); } $APPLICATION->SetTitle(GetMessage("php_cmd_title")); CJSCore::Init(array('ls')); if( $_SERVER['REQUEST_METHOD'] == 'POST' && $_POST["ajax"] === "y" && (isset($_POST["add"]) || $remove) ) { CUtil::JSPostUnescape(); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php"); } else { require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php"); } $aTabs = array(); for ($i = 1; $i <= $query_count - ($remove? 1: 0); $i++) { $aTabs[] = array( "DIV" => "tab".$i, "TAB" => GetMessage("php_cmd_input")." (".$i.")", "TITLE" => GetMessage("php_cmd_php"), ); } $aTabs[] = array( "DIV" => "tab_plus", "TAB" => '', "ONSELECT" => "AddNewTab();", ); $editTab = new CAdminTabControl("editTab", $aTabs); ?>