Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/Error.class.php')
-rw-r--r--libraries/Error.class.php418
1 files changed, 0 insertions, 418 deletions
diff --git a/libraries/Error.class.php b/libraries/Error.class.php
deleted file mode 100644
index 849287e43c..0000000000
--- a/libraries/Error.class.php
+++ /dev/null
@@ -1,418 +0,0 @@
-<?php
-/* vim: set expandtab sw=4 ts=4 sts=4: */
-/**
- * Holds class PMA_Error
- *
- * @version $Id$
- * @package phpMyAdmin
- */
-
-/**
- * base class
- */
-require_once './libraries/Message.class.php';
-
-/**
- * a single error
- *
- * @package phpMyAdmin
- */
-class PMA_Error extends PMA_Message
-{
- /**
- * Error types
- *
- * @var array
- */
- static public $errortype = array (
- E_ERROR => 'Error',
- E_WARNING => 'Warning',
- E_PARSE => 'Parsing Error',
- E_NOTICE => 'Notice',
- E_CORE_ERROR => 'Core Error',
- E_CORE_WARNING => 'Core Warning',
- E_COMPILE_ERROR => 'Compile Error',
- E_COMPILE_WARNING => 'Compile Warning',
- E_USER_ERROR => 'User Error',
- E_USER_WARNING => 'User Warning',
- E_USER_NOTICE => 'User Notice',
- E_STRICT => 'Runtime Notice',
- E_DEPRECATED => 'Deprecation Notice',
- E_RECOVERABLE_ERROR => 'Catchable Fatal Error',
- );
-
- /**
- * Error levels
- *
- * @var array
- */
- static public $errorlevel = array (
- E_ERROR => 'error',
- E_WARNING => 'warning',
- E_PARSE => 'error',
- E_NOTICE => 'notice',
- E_CORE_ERROR => 'error',
- E_CORE_WARNING => 'warning',
- E_COMPILE_ERROR => 'error',
- E_COMPILE_WARNING => 'warning',
- E_USER_ERROR => 'error',
- E_USER_WARNING => 'warning',
- E_USER_NOTICE => 'notice',
- E_STRICT => 'notice',
- E_DEPRECATED => 'notice',
- E_RECOVERABLE_ERROR => 'error',
- );
-
- /**
- * The file in which the error occured
- *
- * @var string
- */
- protected $_file = '';
-
- /**
- * The line in which the error occured
- *
- * @var integer
- */
- protected $_line = 0;
-
- /**
- * Holds the backtrace for this error
- *
- * @var array
- */
- protected $_backtrace = array();
-
- /**
- * Unique id
- *
- * @var string
- */
- protected $_hash = null;
-
- /**
- * Constructor
- *
- * @uses debug_backtrace()
- * @uses PMA_Error::setNumber()
- * @uses PMA_Error::setMessage()
- * @uses PMA_Error::setFile()
- * @uses PMA_Error::setLine()
- * @uses PMA_Error::setBacktrace()
- * @param integer $errno
- * @param string $errstr
- * @param string $errfile
- * @param integer $errline
- */
- public function __construct($errno, $errstr, $errfile, $errline)
- {
- $this->setNumber($errno);
- $this->setMessage($errstr, false);
- $this->setFile($errfile);
- $this->setLine($errline);
-
- $backtrace = debug_backtrace();
- // remove last two calls: debug_backtrace() and handleError()
- unset($backtrace[0]);
- unset($backtrace[1]);
-
- $this->setBacktrace($backtrace);
- }
-
- /**
- * sets PMA_Error::$_backtrace
- *
- * @uses PMA_Error::$_backtrace to set it
- * @param array $backtrace
- */
- public function setBacktrace($backtrace)
- {
- $this->_backtrace = $backtrace;
- }
-
- /**
- * sets PMA_Error::$_line
- *
- * @uses PMA_Error::$_line to set it
- * @param integer $line
- */
- public function setLine($line)
- {
- $this->_line = $line;
- }
-
- /**
- * sets PMA_Error::$_file
- *
- * @uses PMA_Error::$_file to set it
- * @uses PMA_Error::relPath()
- * @param string $file
- */
- public function setFile($file)
- {
- $this->_file = PMA_Error::relPath($file);
- }
-
-
- /**
- * returns unique PMA_Error::$_hash, if not exists it will be created
- *
- * @uses PMA_Error::$_hash as return value and to set it if required
- * @uses PMA_Error::getNumber()
- * @uses PMA_Error::getMessage()
- * @uses PMA_Error::getFile()
- * @uses PMA_Error::getLine()
- * @uses PMA_Error::getBacktrace()
- * @uses md5()
- * @param string $file
- * @return string PMA_Error::$_hash
- */
- public function getHash()
- {
- if (null === $this->_hash) {
- $this->_hash = md5(
- $this->getNumber() .
- $this->getMessage() .
- $this->getFile() .
- $this->getLine() .
- $this->getBacktrace()
- );
- }
-
- return $this->_hash;
- }
-
- /**
- * returns PMA_Error::$_backtrace
- *
- * @uses PMA_Error::$_backtrace as return value
- * @return array PMA_Error::$_backtrace
- */
- public function getBacktrace()
- {
- return $this->_backtrace;
- }
-
- /**
- * returns PMA_Error::$_file
- *
- * @uses PMA_Error::$_file as return value
- * @return string PMA_Error::$_file
- */
- public function getFile()
- {
- return $this->_file;
- }
-
- /**
- * returns PMA_Error::$_line
- *
- * @uses PMA_Error::$_line as return value
- * @return integer PMA_Error::$_line
- */
- public function getLine()
- {
- return $this->_line;
- }
-
- /**
- * returns type of error
- *
- * @uses PMA_Error::$errortype
- * @uses PMA_Error::getNumber()
- * @return string type of error
- */
- public function getType()
- {
- return PMA_Error::$errortype[$this->getNumber()];
- }
-
- /**
- * returns level of error
- *
- * @uses PMA_Error::$$errorlevel
- * @uses PMA_Error::getNumber()
- * @return string level of error
- */
- public function getLevel()
- {
- return PMA_Error::$errorlevel[$this->getNumber()];
- }
-
- /**
- * returns title prepared for HTML Title-Tag
- *
- * @uses PMA_Error::getTitle()
- * @uses htmlspecialchars()
- * @uses substr()
- * @return string HTML escaped and truncated title
- */
- public function getHtmlTitle()
- {
- return htmlspecialchars(substr($this->getTitle(), 0, 100));
- }
-
- /**
- * returns title for error
- *
- * @uses PMA_Error::getType()
- * @uses PMA_Error::getMessage()
- * @return string
- */
- public function getTitle()
- {
- return $this->getType() . ': ' . $this->getMessage();
- }
-
- /**
- * Display HTML backtrace
- *
- * @uses PMA_Error::getBacktrace()
- * @uses PMA_Error::relPath()
- * @uses PMA_Error::displayArg()
- * @uses count()
- */
- public function displayBacktrace()
- {
- foreach ($this->getBacktrace() as $step) {
- echo PMA_Error::relPath($step['file']) . '#' . $step['line'] . ': ';
- if (isset($step['class'])) {
- echo $step['class'] . $step['type'];
- }
- echo $step['function'] . '(';
- if (isset($step['args']) && (count($step['args']) > 1)) {
- echo "<br />\n";
- foreach ($step['args'] as $arg) {
- echo "\t";
- $this->displayArg($arg, $step['function']);
- echo ',' . "<br />\n";
- }
- } elseif (isset($step['args']) && (count($step['args']) > 0)) {
- foreach ($step['args'] as $arg) {
- $this->displayArg($arg, $step['function']);
- }
- }
- echo ')' . "<br />\n";
- }
- }
-
- /**
- * Display a single function argument
- * if $function is one of include/require the $arg is converted te relative path
- *
- * @uses PMA_Error::relPath()
- * @uses in_array()
- * @uses gettype()
- * @param string $arg
- * @param string $function
- */
- protected function displayArg($arg, $function)
- {
- $include_functions = array(
- 'include',
- 'include_once',
- 'require',
- 'require_once',
- );
-
- if (in_array($function, $include_functions)) {
- echo PMA_Error::relPath($arg);
- } elseif (is_scalar($arg)) {
- echo gettype($arg) . ' ' . $arg;
- } else {
- echo gettype($arg);
- }
- }
-
- /**
- * Displays the error in HTML
- *
- * @uses PMA_Error::getLevel()
- * @uses PMA_Error::getType()
- * @uses PMA_Error::getMessage()
- * @uses PMA_Error::displayBacktrace()
- * @uses PMA_Error::isDisplayed()
- */
- public function display()
- {
- echo '<div class="' . $this->getLevel() . '">';
- if (! $this->isUserError()) {
- echo '<strong>' . $this->getType() . '</strong>';
- echo ' in ' . $this->getFile() . '#' . $this->getLine();
- echo "<br />\n";
- }
- echo $this->getMessage();
- if (! $this->isUserError()) {
- echo "<br />\n";
- echo "<br />\n";
- echo "<strong>Backtrace</strong><br />\n";
- echo "<br />\n";
- echo $this->displayBacktrace();
- }
- echo '</div>';
- $this->isDisplayed(true);
- }
-
- /**
- * whether this error is a user error
- *
- * @uses E_USER_WARNING
- * @uses E_USER_ERROR
- * @uses E_USER_NOTICE
- * @uses PMA_Error::getNumber()
- * @return boolean
- */
- public function isUserError()
- {
- return $this->getNumber() & (E_USER_WARNING | E_USER_ERROR | E_USER_NOTICE);
- }
-
- /**
- * return short relative path to phpMyAdmin basedir
- *
- * prevent path disclusore in error message,
- * and make users feel save to submit error reports
- *
- * @static
- * @uses PHP_OS()
- * @uses __FILE__()
- * @uses realpath()
- * @uses substr()
- * @uses explode()
- * @uses dirname()
- * @uses implode()
- * @uses count()
- * @uses array_pop()
- * @uses str_replace()
- * @param string $dest path to be shorten
- * @return string shortened path
- */
- static function relPath($dest)
- {
- $dest = realpath($dest);
-
- if (substr(PHP_OS, 0, 3) == 'WIN') {
- $path_separator = '\\';
- } else {
- $path_separator = '/';
- }
-
- $Ahere = explode($path_separator, realpath(dirname(__FILE__) . $path_separator . '..'));
- $Adest = explode($path_separator, $dest);
-
- $result = '.';
- // && count ($Adest)>0 && count($Ahere)>0 )
- while (implode($path_separator, $Adest) != implode($path_separator, $Ahere)) {
- if (count($Ahere) > count($Adest)) {
- array_pop($Ahere);
- $result .= $path_separator . '..';
- } else {
- array_pop($Adest);
- }
- }
- $path = $result . str_replace(implode($path_separator, $Adest), '', $dest);
- return str_replace($path_separator . $path_separator, $path_separator, $path);
- }
-}
-?>