003 File Manager
Current Path:
/usr/local/www/sites/shared/phpmyadmin/libraries/classes
usr
/
local
/
www
/
sites
/
shared
/
phpmyadmin
/
libraries
/
classes
/
📁
..
📄
Advisor.php
(17.87 KB)
📄
Bookmark.php
(9.85 KB)
📄
BrowseForeigners.php
(10.7 KB)
📄
CentralColumns.php
(53.12 KB)
📄
Charsets.php
(24.07 KB)
📄
CheckUserPrivileges.php
(11.58 KB)
📁
Config
📄
Config.php
(58.1 KB)
📄
Console.php
(3.58 KB)
📁
Controllers
📄
Core.php
(38.15 KB)
📄
CreateAddField.php
(17.95 KB)
📁
Database
📄
DatabaseInterface.php
(103.63 KB)
📁
Dbi
📁
Di
📁
Display
📄
Encoding.php
(8.25 KB)
📁
Engines
📄
Error.php
(12.93 KB)
📄
ErrorHandler.php
(16.32 KB)
📄
ErrorReport.php
(8.28 KB)
📄
Export.php
(40.32 KB)
📄
File.php
(20.43 KB)
📄
FileListing.php
(2.83 KB)
📄
Font.php
(4.25 KB)
📄
Footer.php
(10.47 KB)
📁
Gis
📄
Header.php
(25.81 KB)
📄
Import.php
(55.59 KB)
📄
Index.php
(24.63 KB)
📄
IndexColumn.php
(4.43 KB)
📄
InsertEdit.php
(129.1 KB)
📄
IpAllowDeny.php
(9.21 KB)
📄
Language.php
(4.3 KB)
📄
LanguageManager.php
(23.17 KB)
📄
Linter.php
(5.1 KB)
📄
ListAbstract.php
(3.15 KB)
📄
ListDatabase.php
(4.22 KB)
📄
Logging.php
(2.56 KB)
📄
Menu.php
(22.34 KB)
📄
Message.php
(19.19 KB)
📄
Mime.php
(891 B)
📄
MultSubmits.php
(23.19 KB)
📁
Navigation
📄
Normalization.php
(38.99 KB)
📄
OpenDocument.php
(8.5 KB)
📄
Operations.php
(79.4 KB)
📄
OutputBuffering.php
(3.63 KB)
📄
ParseAnalyze.php
(2.46 KB)
📄
Partition.php
(7.26 KB)
📄
Pdf.php
(4.07 KB)
📁
Plugins
📄
Plugins.php
(21.42 KB)
📁
Properties
📄
RecentFavoriteTable.php
(12.05 KB)
📄
Relation.php
(75.97 KB)
📄
RelationCleanup.php
(14.7 KB)
📄
Replication.php
(5.37 KB)
📄
ReplicationGui.php
(41.46 KB)
📄
Response.php
(16.31 KB)
📁
Rte
📄
Sanitize.php
(14.15 KB)
📄
SavedSearches.php
(11.95 KB)
📄
Scripts.php
(5.33 KB)
📁
Server
📄
Session.php
(7.68 KB)
📄
Sql.php
(87.62 KB)
📄
SqlQueryForm.php
(17.19 KB)
📄
StorageEngine.php
(13.47 KB)
📄
SubPartition.php
(3.53 KB)
📄
SysInfo.php
(1.54 KB)
📄
SysInfoBase.php
(801 B)
📄
SysInfoLinux.php
(1.96 KB)
📄
SysInfoSunOS.php
(1.87 KB)
📄
SysInfoWINNT.php
(3.1 KB)
📄
SystemDatabase.php
(3.84 KB)
📄
Table.php
(92.48 KB)
📄
Template.php
(3.91 KB)
📄
Theme.php
(10.53 KB)
📄
ThemeManager.php
(10.64 KB)
📄
Tracker.php
(29.43 KB)
📄
Tracking.php
(41.96 KB)
📄
Transformations.php
(16.12 KB)
📁
Twig
📄
TwoFactor.php
(7 KB)
📄
Types.php
(22.75 KB)
📄
Url.php
(8.02 KB)
📄
UserPassword.php
(8.26 KB)
📄
UserPreferences.php
(8.52 KB)
📄
Util.php
(162.41 KB)
📁
Utils
📄
VersionInformation.php
(6.34 KB)
📄
ZipExtension.php
(9.98 KB)
Editing: ErrorReport.php
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Holds the PhpMyAdmin\ErrorReport class * * @package PhpMyAdmin */ namespace PhpMyAdmin; use PhpMyAdmin\Relation; use PhpMyAdmin\Template; use PhpMyAdmin\Url; use PhpMyAdmin\Utils\HttpRequest; /** * Error reporting functions used to generate and submit error reports * * @package PhpMyAdmin */ class ErrorReport { /** * The URL where to submit reports to * * @var string */ private $submissionUrl; /** * @var HttpRequest */ private $httpRequest; /** * @var Relation $relation */ private $relation; /** * Constructor * * @param HttpRequest $httpRequest HttpRequest instance */ public function __construct(HttpRequest $httpRequest) { $this->httpRequest = $httpRequest; $this->submissionUrl = 'https://reports.phpmyadmin.net/incidents/create'; $this->relation = new Relation(); } /** * Returns the pretty printed error report data collected from the * current configuration or from the request parameters sent by the * error reporting js code. * * @return string the report */ private function getPrettyData() { $report = $this->getData(); return json_encode($report, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); } /** * Returns the error report data collected from the current configuration or * from the request parameters sent by the error reporting js code. * * @param string $exceptionType whether exception is 'js' or 'php' * * @return array error report if success, Empty Array otherwise */ public function getData($exceptionType = 'js') { $relParams = $this->relation->getRelationsParam(); // common params for both, php & js exceptions $report = [ "pma_version" => PMA_VERSION, "browser_name" => PMA_USR_BROWSER_AGENT, "browser_version" => PMA_USR_BROWSER_VER, "user_os" => PMA_USR_OS, "server_software" => $_SERVER['SERVER_SOFTWARE'], "user_agent_string" => $_SERVER['HTTP_USER_AGENT'], "locale" => $_COOKIE['pma_lang'], "configuration_storage" => is_null($relParams['db']) ? "disabled" : "enabled", "php_version" => phpversion() ]; if ($exceptionType == 'js') { if (empty($_POST['exception'])) { return []; } $exception = $_POST['exception']; $exception["stack"] = $this->translateStacktrace($exception["stack"]); if (isset($exception["url"])) { list($uri, $scriptName) = $this->sanitizeUrl($exception["url"]); $exception["uri"] = $uri; $report["script_name"] = $scriptName; unset($exception["url"]); } else if (isset($_POST["url"])) { list($uri, $scriptName) = $this->sanitizeUrl($_POST["url"]); $exception["uri"] = $uri; $report["script_name"] = $scriptName; unset($_POST["url"]); } else { $report["script_name"] = null; } $report["exception_type"] = 'js'; $report["exception"] = $exception; if (isset($_POST['microhistory'])) { $report["microhistory"] = $_POST['microhistory']; } if (! empty($_POST['description'])) { $report['steps'] = $_POST['description']; } } elseif ($exceptionType == 'php') { $errors = []; // create php error report $i = 0; if (!isset($_SESSION['prev_errors']) || $_SESSION['prev_errors'] == '' ) { return []; } foreach ($_SESSION['prev_errors'] as $errorObj) { /* @var $errorObj PhpMyAdmin\Error */ if ($errorObj->getLine() && $errorObj->getType() && $errorObj->getNumber() != E_USER_WARNING ) { $errors[$i++] = [ "lineNum" => $errorObj->getLine(), "file" => $errorObj->getFile(), "type" => $errorObj->getType(), "msg" => $errorObj->getOnlyMessage(), "stackTrace" => $errorObj->getBacktrace(5), "stackhash" => $errorObj->getHash() ]; } } // if there were no 'actual' errors to be submitted. if ($i==0) { return []; // then return empty array } $report["exception_type"] = 'php'; $report["errors"] = $errors; } else { return []; } return $report; } /** * Sanitize a url to remove the identifiable host name and extract the * current script name from the url fragment * * It returns two things in an array. The first is the uri without the * hostname and identifying query params. The second is the name of the * php script in the url * * @param string $url the url to sanitize * * @return array the uri and script name */ private function sanitizeUrl($url) { $components = parse_url($url); if (isset($components["fragment"]) && preg_match("<PMAURL-\d+:>", $components["fragment"], $matches) ) { $uri = str_replace($matches[0], "", $components["fragment"]); $url = "https://example.com/" . $uri; $components = parse_url($url); } // get script name preg_match("<([a-zA-Z\-_\d\.]*\.php|js\/[a-zA-Z\-_\d\/\.]*\.js)$>", $components["path"], $matches); if (count($matches) < 2) { $scriptName = 'index.php'; } else { $scriptName = $matches[1]; } // remove deployment specific details to make uri more generic if (isset($components["query"])) { parse_str($components["query"], $queryArray); unset($queryArray["db"]); unset($queryArray["table"]); unset($queryArray["token"]); unset($queryArray["server"]); $query = http_build_query($queryArray); } else { $query = ''; } $uri = $scriptName . "?" . $query; return [$uri, $scriptName]; } /** * Sends report data to the error reporting server * * @param array $report the report info to be sent * * @return string the reply of the server */ public function send(array $report) { $response = $this->httpRequest->create( $this->submissionUrl, "POST", false, json_encode($report), "Content-Type: application/json" ); return $response; } /** * Translates the cumulative line numbers in the stack trace as well as sanitize * urls and trim long lines in the context * * @param array $stack the stack trace * * @return array $stack the modified stack trace */ private function translateStacktrace(array $stack) { foreach ($stack as &$level) { foreach ($level["context"] as &$line) { if (mb_strlen($line) > 80) { $line = mb_substr($line, 0, 75) . "//..."; } } list($uri, $scriptName) = $this->sanitizeUrl($level["url"]); $level["uri"] = $uri; $level["scriptname"] = $scriptName; unset($level["url"]); } unset($level); return $stack; } /** * Generates the error report form to collect user description and preview the * report before being sent * * @return string the form */ public function getForm() { $datas = [ 'report_data' => $this->getPrettyData(), 'hidden_inputs' => Url::getHiddenInputs(), 'hidden_fields' => null, ]; $reportData = $this->getData(); if (!empty($reportData)) { $datas['hidden_fields'] = Url::getHiddenFields($reportData); } return Template::get('error/report_form')->render($datas); } }
Upload File
Create Folder