ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:25.17 GB of 70.42 GB (35.74%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ http/ yalagina/ libraries/ joomla/ error/ - drwxr-xr-x

Directory:
Viewing file:     error.php (23.67 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Error
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

// Error Definition: Illegal Options
define('JERROR_ILLEGAL_OPTIONS'1);
// Error Definition: Callback does not exist
define('JERROR_CALLBACK_NOT_CALLABLE'2);
// Error Definition: Illegal Handler
define('JERROR_ILLEGAL_MODE'3);

/**
 * Error Handling Class
 *
 * This class is inspired in design and concept by patErrorManager <http://www.php-tools.net>
 *
 * patErrorManager contributors include:
 * - gERD Schaufelberger    <gerd@php-tools.net>
 * - Sebastian Mordziol    <argh@php-tools.net>
 * - Stephan Schmidt        <scst@php-tools.net>
 *
 * @package     Joomla.Platform
 * @subpackage  Error
 * @since       11.1
 * @deprecated  12.1   Use PHP Exception
 */
abstract class JError
{
    
/**
     * Legacy error handling marker
     *
     * @var    boolean  True to enable legacy error handling using JError, false to use exception handling.  This flag
     *                  is present to allow an easy transition into exception handling for code written against the
     *                  existing JError API in Joomla.
     * @since  11.1
     */
    
public static $legacy false;

    
/**
     * Array of message levels
     *
     * @var    array
     * @since  11.1
     */
    
protected static $levels = array(E_NOTICE => 'Notice'E_WARNING => 'Warning'E_ERROR => 'Error');

    protected static 
$handlers = array(
        
E_NOTICE => array('mode' => 'ignore'),
        
E_WARNING => array('mode' => 'ignore'),
        
E_ERROR => array('mode' => 'ignore')
    );

    protected static 
$stack = array();

    
/**
     * Method to determine if a value is an exception object.  This check supports
     * both JException and PHP5 Exception objects
     *
     * @param   mixed  &$object  Object to check
     *
     * @return  boolean  True if argument is an exception, false otherwise.
     *
     * @since   11.1
     *
     * @deprecated  12.1
     */
    
public static function isError(& $object)
    {
        
// Deprecation warning.
        
JLog::add('JError::isError() is deprecated.'JLog::WARNING'deprecated');

        
// Supports PHP 5 exception handling
        
return $object instanceof Exception;
    }

    
/**
     * Method for retrieving the last exception object in the error stack
     *
     * @param   boolean  $unset  True to remove the error from the stack.
     *
     * @return  mixed  Last exception object in the error stack or boolean false if none exist
     *
     * @deprecated  12.1
     * @since   11.1
     */
    
public static function getError($unset false)
    {
        
// Deprecation warning.
        
JLog::add('JError::getError() is deprecated.'JLog::WARNING'deprecated');

        if (!isset(
JError::$stack[0]))
        {
            return 
false;
        }

        if (
$unset)
        {
            
$error array_shift(JError::$stack);
        }
        else
        {
            
$error = &JError::$stack[0];
        }
        return 
$error;
    }

    
/**
     * Method for retrieving the exception stack
     *
     * @return  array  Chronological array of errors that have been stored during script execution
     *
     * @deprecated  12.1
     * @since   11.1
     */
    
public static function getErrors()
    {
        
// Deprecation warning.
        
JLog::add('JError::getErrors() is deprecated.'JLog::WARNING'deprecated');

        return 
JError::$stack;
    }

    
/**
     * Method to add non-JError thrown JExceptions to the JError stack for debugging purposes
     *
     * @param   JException  &$e  Add an exception to the stack.
     *
     * @return  void
     *
     * @since       11.1
     * @deprecated  12.1
     */
    
public static function addToStack(JException &$e)
    {
        
// Deprecation warning.
        
JLog::add('JError::addToStack() is deprecated.'JLog::WARNING'deprecated');

        
JError::$stack[] = &$e;
    }

    
/**
     * Create a new JException object given the passed arguments
     *
     * @param   integer  $level      The error level - use any of PHP's own error levels for
     *                               this: E_ERROR, E_WARNING, E_NOTICE, E_USER_ERROR,
     *                               E_USER_WARNING, E_USER_NOTICE.
     * @param   string   $code       The application-internal error code for this error
     * @param   string   $msg        The error message, which may also be shown the user if need be.
     * @param   mixed    $info       Optional: Additional error information (usually only
     *                               developer-relevant information that the user should never see,
     *                               like a database DSN).
     * @param   boolean  $backtrace  Add a stack backtrace to the exception.
     *
     * @return  mixed    The JException object
     *
     * @since       11.1
     * @deprecated  12.1  Use PHP Exception
     * @see         JException
     */
    
public static function raise($level$code$msg$info null$backtrace false)
    {
        
// Deprecation warning.
        
JLog::add('JError::raise() is deprecated.'JLog::WARNING'deprecated');

        
jimport('joomla.error.exception');

        
// Build error object
        
$exception = new JException($msg$code$level$info$backtrace);
        return 
JError::throwError($exception);
    }

    
/**
     * Throw an error
     *
     * @param   object  &$exception  An exception to throw.
     *
     * @return  reference
     *
     * @deprecated  12.1  Use PHP Exception
     * @see     JException
     * @since   11.1
     */
    
public static function throwError(&$exception)
    {
        
// Deprecation warning.
        
JLog::add('JError::throwError() is deprecated.'JLog::WARNING'deprecated');

        static 
$thrown false;

        
// If thrown is hit again, we've come back to JError in the middle of throwing another JError, so die!
        
if ($thrown)
        {
            
self::handleEcho($exception, array());
            
// Inifite loop.
            
jexit();
        }

        
$thrown true;
        
$level $exception->get('level');

        
// See what to do with this kind of error
        
$handler JError::getErrorHandling($level);

        
$function 'handle' ucfirst($handler['mode']);
        if (
is_callable(array('JError'$function)))
        {
            
$reference call_user_func_array(array('JError'$function), array(&$exception, (isset($handler['options'])) ? $handler['options'] : array()));
        }
        else
        {
            
// This is required to prevent a very unhelpful white-screen-of-death
            
jexit(
                
'JError::raise -> Static method JError::' $function ' does not exist.' ' Contact a developer to debug' .
                
'<br /><strong>Error was</strong> ' '<br />' $exception->getMessage()
            );
        }
        
// We don't need to store the error, since JException already does that for us!
        // Remove loop check
        
$thrown false;

        return 
$reference;
    }

    
/**
     * Wrapper method for the raise() method with predefined error level of E_ERROR and backtrace set to true.
     *
     * @param   string  $code  The application-internal error code for this error
     * @param   string  $msg   The error message, which may also be shown the user if need be.
     * @param   mixed   $info  Optional: Additional error information (usually only
     *                         developer-relevant information that the user should
     *                         never see, like a database DSN).
     *
     * @return  object  $error  The configured JError object
     *
     * @deprecated   12.1       Use PHP Exception
     * @see        raise()
     * @since   11.1
     */
    
public static function raiseError($code$msg$info null)
    {
        
// Deprecation warning.
        
JLog::add('JError::raiseError() is deprecated.'JLog::WARNING'deprecated');

        return 
JError::raise(E_ERROR$code$msg$infotrue);
    }

    
/**
     * Wrapper method for the {@link raise()} method with predefined error level of E_WARNING and
     * backtrace set to false.
     *
     * @param   string  $code  The application-internal error code for this error
     * @param   string  $msg   The error message, which may also be shown the user if need be.
     * @param   mixed   $info  Optional: Additional error information (usually only
     *                         developer-relevant information that
     *                         the user should never see, like a database DSN).
     *
     * @return  object  The configured JError object
     *
     * @deprecated  12.1  Use PHP Exception
     * @see        JError
     * @see        raise()
     * @since      11.1
     */
    
public static function raiseWarning($code$msg$info null)
    {
        
// Deprecation warning.
        
JLog::add('JError::raiseWarning() is deprecated.'JLog::WARNING'deprecated');

        return 
JError::raise(E_WARNING$code$msg$info);
    }

    
/**
     * Wrapper method for the {@link raise()} method with predefined error
     * level of E_NOTICE and backtrace set to false.
     *
     * @param   string  $code  The application-internal error code for this error
     * @param   string  $msg   The error message, which may also be shown the user if need be.
     * @param   mixed   $info  Optional: Additional error information (usually only
     *                         developer-relevant information that the user
     *                         should never see, like a database DSN).
     *
     * @return  object   The configured JError object
     *
     * @deprecated       12.1   Use PHP Exception
     * @see     raise()
     * @since   11.1
     */
    
public static function raiseNotice($code$msg$info null)
    {
        
// Deprecation warning.
        
JLog::add('JError::raiseNotice() is deprecated.'JLog::WARNING'deprecated');

        return 
JError::raise(E_NOTICE$code$msg$info);
    }

    
/**
     * Method to get the current error handler settings for a specified error level.
     *
     * @param   integer  $level  The error level to retrieve. This can be any of PHP's
     *                           own error levels, e.g. E_ALL, E_NOTICE...
     *
     * @return  array    All error handling details
     *
     * @deprecated   12.1  Use PHP Exception
     * @since   11.1
     */
    
public static function getErrorHandling($level)
    {
        
// Deprecation warning.
        
JLog::add('JError::getErrorHandling() is deprecated.'JLog::WARNING'deprecated');

        return 
JError::$handlers[$level];
    }

    
/**
     * Method to set the way the JError will handle different error levels. Use this if you want to override the default settings.
     *
     * Error handling modes:
     * - ignore
     * - echo
     * - verbose
     * - die
     * - message
     * - log
     * - callback
     *
     * You may also set the error handling for several modes at once using PHP's bit operations.
     * Examples:
     * - E_ALL = Set the handling for all levels
     * - E_ERROR | E_WARNING = Set the handling for errors and warnings
     * - E_ALL ^ E_ERROR = Set the handling for all levels except errors
     *
     * @param   integer  $level    The error level for which to set the error handling
     * @param   string   $mode     The mode to use for the error handling.
     * @param   mixed    $options  Optional: Any options needed for the given mode.
     *
     * @return  mixed  True on success or a JException object if failed.
     *
     * @deprecated  12.1  Use PHP Exception
     * @since   11.1
     */
    
public static function setErrorHandling($level$mode$options null)
    {
        
// Deprecation warning.
        
JLog::add('JError::setErrorHandling() is deprecated.'JLog::WARNING'deprecated');

        
$levels JError::$levels;

        
$function 'handle' ucfirst($mode);

        if (!
is_callable(array('JError'$function)))
        {
            return 
JError::raiseError(E_ERROR'JError:' JERROR_ILLEGAL_MODE'Error Handling mode is not known''Mode: ' $mode ' is not implemented.');
        }

        foreach (
$levels as $eLevel => $eTitle)
        {
            if ((
$level $eLevel) != $eLevel)
            {
                continue;
            }

            
// Set callback options
            
if ($mode == 'callback')
            {
                if (!
is_array($options))
                {
                    return 
JError::raiseError(E_ERROR'JError:' JERROR_ILLEGAL_OPTIONS'Options for callback not valid');
                }

                if (!
is_callable($options))
                {
                    
$tmp = array('GLOBAL');
                    if (
is_array($options))
                    {
                        
$tmp[0] = $options[0];
                        
$tmp[1] = $options[1];
                    }
                    else
                    {
                        
$tmp[1] = $options;
                    }

                    return 
JError::raiseError(
                        
E_ERROR,
                        
'JError:' JERROR_CALLBACK_NOT_CALLABLE,
                        
'Function is not callable',
                        
'Function:' $tmp[1] . ' scope ' $tmp[0] . '.'
                    
);
                }
            }

            
// Save settings
            
JError::$handlers[$eLevel] = array('mode' => $mode);
            if (
$options != null)
            {
                
JError::$handlers[$eLevel]['options'] = $options;
            }
        }

        return 
true;
    }

    
/**
     * Method that attaches the error handler to JError
     *
     * @return  void
     *
     * @deprecated  12.1
     * @see     set_error_handler
     * @since   11.1
     */
    
public static function attachHandler()
    {
        
// Deprecation warning.
        
JLog::add('JError::getErrorHandling() is deprecated.'JLog::WARNING'deprecated');

        
set_error_handler(array('JError''customErrorHandler'));
    }

    
/**
     * Method that detaches the error handler from JError
     *
     * @return  void
     *
     * @deprecated  12.1
     * @see     restore_error_handler
     * @since   11.1
     */
    
public static function detachHandler()
    {
        
// Deprecation warning.
        
JLog::add('JError::detachHandler() is deprecated.'JLog::WARNING'deprecated');

        
restore_error_handler();
    }

    
/**
     * Method to register a new error level for handling errors
     *
     * This allows you to add custom error levels to the built-in
     * - E_NOTICE
     * - E_WARNING
     * - E_NOTICE
     *
     * @param   integer  $level    Error level to register
     * @param   string   $name     Human readable name for the error level
     * @param   string   $handler  Error handler to set for the new error level [optional]
     *
     * @return  boolean  True on success; false if the level already has been registered
     *
     * @deprecated  12.1
     * @since   11.1
     */
    
public static function registerErrorLevel($level$name$handler 'ignore')
    {
        
// Deprecation warning.
        
JLog::add('JError::registerErrorLevel() is deprecated.'JLog::WARNING'deprecated');

        if (isset(
JError::$levels[$level]))
        {
            return 
false;
        }

        
JError::$levels[$level] = $name;
        
JError::setErrorHandling($level$handler);

        return 
true;
    }

    
/**
     * Translate an error level integer to a human readable string
     * e.g. E_ERROR will be translated to 'Error'
     *
     * @param   integer  $level  Error level to translate
     *
     * @return  mixed  Human readable error level name or boolean false if it doesn't exist
     *
     * @deprecated  12.1
     * @since   11.1
     */

    
public static function translateErrorLevel($level)
    {
        
// Deprecation warning.
        
JLog::add('JError::translateErrorLevel() is deprecated.'JLog::WARNING'deprecated');

        if (isset(
JError::$levels[$level]))
        {
            return 
JError::$levels[$level];
        }

        return 
false;
    }

    
/**
     * Ignore error handler
     * - Ignores the error
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object   The exception object
     *
     * @deprecated  12.1
     * @see     raise()
     * @since   11.1
     */
    
public static function handleIgnore(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::handleIgnore() is deprecated.'JLog::WARNING'deprecated');

        return 
$error;
    }

    
/**
     * Echo error handler
     * - Echos the error message to output
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object  The exception object
     *
     * @deprecated  12.1
     * @see         raise()
     * @since       11.1
     */
    
public static function handleEcho(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::handleEcho() is deprecated.'JLog::WARNING'deprecated');

        
$level_human JError::translateErrorLevel($error->get('level'));

        
// If system debug is set, then output some more information.
        
if (defined('JDEBUG'))
        {
            
$backtrace $error->getTrace();
            
$trace '';
            for (
$i count($backtrace) - 1$i >= 0$i--)
            {
                if (isset(
$backtrace[$i]['class']))
                {
                    
$trace .= sprintf("\n%s %s %s()"$backtrace[$i]['class'], $backtrace[$i]['type'], $backtrace[$i]['function']);
                }
                else
                {
                    
$trace .= sprintf("\n%s()"$backtrace[$i]['function']);
                }

                if (isset(
$backtrace[$i]['file']))
                {
                    
$trace .= sprintf(' @ %s:%d'$backtrace[$i]['file'], $backtrace[$i]['line']);
                }
            }
        }

        if (isset(
$_SERVER['HTTP_HOST']))
        {
            
// output as html
            
echo "<br /><b>jos-$level_human</b>: "
                
$error->get('message') . "<br />\n"
                
. (defined('JDEBUG') ? nl2br($trace) : '');
        }
        else
        {
            
// Output as simple text
            
if (defined('STDERR'))
            {
                
fwrite(STDERR"J$level_human: " $error->get('message') . "\n");
                if (
defined('JDEBUG'))
                {
                    
fwrite(STDERR$trace);
                }
            }
            else
            {
                echo 
"J$level_human: " $error->get('message') . "\n";
                if (
defined('JDEBUG'))
                {
                    echo 
$trace;
                }
            }
        }

        return 
$error;
    }

    
/**
     * Verbose error handler
     * - Echos the error message to output as well as related info
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object  The exception object
     *
     * @deprecated  12.1
     * @see         raise()
     * @since       11.1
     */
    
public static function handleVerbose(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::handleVerbose() is deprecated.'JLog::WARNING'deprecated');

        
$level_human JError::translateErrorLevel($error->get('level'));
        
$info $error->get('info');

        if (isset(
$_SERVER['HTTP_HOST']))
        {
            
// Output as html
            
echo "<br /><b>J$level_human</b>: " $error->get('message') . "<br />\n";

            if (
$info != null)
            {
                echo 
"&#160;&#160;&#160;" $info "<br />\n";
            }

            echo 
$error->getBacktrace(true);
        }
        else
        {
            
// Output as simple text
            
echo "J$level_human: " $error->get('message') . "\n";
            if (
$info != null)
            {
                echo 
"\t" $info "\n";
            }

        }

        return 
$error;
    }

    
/**
     * Die error handler
     * - Echos the error message to output and then dies
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object  The exception object
     *
     * @deprecated  12.1
     * @see         raise()
     * @since       11.1
     */
    
public static function handleDie(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::handleDie() is deprecated.'JLog::WARNING'deprecated');

        
$level_human JError::translateErrorLevel($error->get('level'));

        if (isset(
$_SERVER['HTTP_HOST']))
        {
            
// Output as html
            
jexit("<br /><b>J$level_human</b>: " $error->get('message') . "<br />\n");
        }
        else
        {
            
// Output as simple text
            
if (defined('STDERR'))
            {
                
fwrite(STDERR"J$level_human: " $error->get('message') . "\n");
                
jexit();
            }
            else
            {
                
jexit("J$level_human: " $error->get('message') . "\n");
            }
        }

        return 
$error;
    }

    
/**
     * Message error handler
     * Enqueues the error message into the system queue
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object  The exception object
     *
     * @deprecated  12.1
     * @see         raise()
     * @since       11.1
     */
    
public static function handleMessage(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::hanleMessage() is deprecated.'JLog::WARNING'deprecated');

        
$appl JFactory::getApplication();
        
$type = ($error->get('level') == E_NOTICE) ? 'notice' 'error';
        
$appl->enqueueMessage($error->get('message'), $type);

        return 
$error;
    }

    
/**
     * Log error handler
     * Logs the error message to a system log file
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object  The exception object
     *
     * @deprecated  12.1
     * @see         raise()
     * @since       11.1
     */
    
public static function handleLog(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::handleLog() is deprecated.'JLog::WARNING'deprecated');

        static 
$log;

        if (
$log == null)
        {
            
$fileName date('Y-m-d') . '.error.log';
            
$options['format'] = "{DATE}\t{TIME}\t{LEVEL}\t{CODE}\t{MESSAGE}";
            
$log JLog::getInstance($fileName$options);
        }

        
$entry['level'] = $error->get('level');
        
$entry['code'] = $error->get('code');
        
$entry['message'] = str_replace(array("\r""\n"), array('''\\n'), $error->get('message'));
        
$log->addEntry($entry);

        return 
$error;
    }

    
/**
     * Callback error handler
     * - Send the error object to a callback method for error handling
     *
     * @param   object  &$error   Exception object to handle
     * @param   array   $options  Handler options
     *
     * @return  object  The exception object
     *
     * @deprecated  12.1
     * @see         raise()
     * @since       11.1
     */
    
public static function handleCallback(&$error$options)
    {
        
// Deprecation warning.
        
JLog::add('JError::handleCallback() is deprecated.'JLog::WARNING'deprecated');

        return 
call_user_func($options$error);
    }

    
/**
     * Display a custom error page and exit gracefully
     *
     * @param   object  &$error  Exception object
     *
     * @return  void
     *
     * @deprecated  12.1
     * @since   11.1
     */
    
public static function customErrorPage(&$error)
    {
        
// Deprecation warning.
        
JLog::add('JError::customErrorPage() is deprecated.'JLog::WARNING'deprecated');

        
// Initialise variables.
        
$app JFactory::getApplication();
        
$document JDocument::getInstance('error');
        if (
$document)
        {
            
$config JFactory::getConfig();

            
// Get the current template from the application
            
$template $app->getTemplate();

            
// Push the error object into the document
            
$document->setError($error);

            @
ob_end_clean();
            
$document->setTitle(JText::_('Error') . ': ' $error->get('code'));
            
$data $document->render(false, array('template' => $template'directory' => JPATH_THEMES'debug' => $config->get('debug')));

            
// Failsafe to get the error displayed.
            
if (empty($data))
            {
                
self::handleEcho($error, array());
            }
            else
            {
                
// Do not allow cache
                
JResponse::allowCache(false);

                
JResponse::setBody($data);
                echo 
JResponse::toString();
            }
        }
        else
        {
            
// Just echo the error since there is no document
            // This is a common use case for Command Line Interface applications.
            
self::handleEcho($error, array());
        }
        
$app->close(0);
    }

    
/**
     * Display a message to the user
     *
     * @param   integer  $level  The error level - use any of PHP's own error levels
     *                   for this: E_ERROR, E_WARNING, E_NOTICE, E_USER_ERROR,
     *                   E_USER_WARNING, E_USER_NOTICE.
     * @param   string   $msg    Error message, shown to user if need be.
     *
     * @return  void
     *
     * @deprecated  12.1
     * @since   11.1
     */
    
public static function customErrorHandler($level$msg)
    {
        
// Deprecation warning.
        
JLog::add('JError::customErrorHandler() is deprecated.'JLog::WARNING'deprecated');

        
JError::raise($level''$msg);
    }

    
/**
     * Render the backtrace
     *
     * @param   integer  $error  The error
     *
     * @return  string  Contents of the backtrace
     *
     * @deprecated  12.1
     * @since   11.1
     */
    
public static function renderBacktrace($error)
    {
        
// Deprecation warning.
        
JLog::add('JError::renderBacktrace() is deprecated.'JLog::WARNING'deprecated');

        
$contents null;
        
$backtrace $error->getTrace();

        if (
is_array($backtrace))
        {
            
ob_start();
            
$j 1;
            echo 
'<table cellpadding="0" cellspacing="0" class="Table">';
            echo 
'        <tr>';
            echo 
'                <td colspan="3" class="TD"><strong>Call stack</strong></td>';
            echo 
'        </tr>';
            echo 
'        <tr>';
            echo 
'                <td class="TD"><strong>#</strong></td>';
            echo 
'                <td class="TD"><strong>Function</strong></td>';
            echo 
'                <td class="TD"><strong>Location</strong></td>';
            echo 
'        </tr>';

            for (
$i count($backtrace) - 1$i >= 0$i--)
            {
                echo 
'        <tr>';
                echo 
'                <td class="TD">' $j '</td>';

                if (isset(
$backtrace[$i]['class']))
                {
                    echo 
'        <td class="TD">' $backtrace[$i]['class'] . $backtrace[$i]['type'] . $backtrace[$i]['function'] . '()</td>';
                }
                else
                {
                    echo 
'        <td class="TD">' $backtrace[$i]['function'] . '()</td>';
                }

                if (isset(
$backtrace[$i]['file']))
                {
                    echo 
'                <td class="TD">' $backtrace[$i]['file'] . ':' $backtrace[$i]['line'] . '</td>';
                }
                else
                {
                    echo 
'                <td class="TD">&#160;</td>';
                }

                echo 
'        </tr>';
                
$j++;
            }

            echo 
'</table>';
            
$contents ob_get_contents();
            
ob_end_clean();
        }

        return 
$contents;
    }
}
Command:
Quick Commands:
Upload:
[OK] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [OK]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.3853 seconds