Process backtrace to avoid path disclossures, objects and so on
public static processBacktrace ( array $backtrace ) : array | ||
$backtrace | array | backtrace |
리턴 | array |
/** * Stores query data into session data for debugging purposes * * @param string $query Query text * @param object $link database link * @param object|boolean $result Query result * @param integer $time Time to execute query * * @return void */ private function _dbgQuery($query, $link, $result, $time) { $dbgInfo = array(); $error_message = $this->getError($link); if ($result == false && is_string($error_message)) { $dbgInfo['error'] = '<span style="color:red">' . htmlspecialchars($error_message) . '</span>'; } $dbgInfo['query'] = htmlspecialchars($query); $dbgInfo['time'] = $time; // Get and slightly format backtrace, this is used // in the javascript console. // Strip call to _dbgQuery $dbgInfo['trace'] = Error::processBacktrace(array_slice(debug_backtrace(), 1)); $dbgInfo['hash'] = md5($query); $_SESSION['debug']['queries'][] = $dbgInfo; }
/** * sets PMA\libraries\Error::$_backtrace * * We don't store full arguments to avoid wakeup or memory problems. * * @param array $backtrace backtrace * * @return void */ public function setBacktrace($backtrace) { $this->backtrace = Error::processBacktrace($backtrace); }