/**
 * Builds the context vars list for log and/or report
 * @var array $vars an array of vars to output
 * @var int $level the level in the context vars (prevent infinite recursion)
 * @return string the output to display
 */
function buildSimpleVarList($vars, $level = 0)
{
    $output = '';
    $indent = str_repeat('	', $level * 2);
    $prefix = $level == 0 ? '$' : '\'';
    $suffix = $level == 0 ? '' : '\'';
    foreach ($vars as $key => $value) {
        if ($level == 0) {
            $key = $prefix . $key;
        } elseif (!is_numeric($key)) {
            $key = $prefix . $key . $suffix;
        }
        if (is_array($value)) {
            $length = count($value);
            $output .= '<li>' . "\n" . $indent;
            $output .= '	<b>' . $key . ':</b> array(' . $length . ')' . "\n" . $indent;
            $output .= '	<ul>' . "\n" . $indent;
            if ($level > 5) {
                // Prevent infinite recursion
                $output .= '		<li><em>(too much levels)</em></li>' . "\n" . $indent;
            } elseif ($length > 0) {
                $output .= '		' . buildSimpleVarList($value, $level + 1) . "\n" . $indent;
            } else {
                $output .= '	<li><em>(empty)</em></li>' . "\n" . $indent;
            }
            $output .= '	</ul>' . "\n" . $indent;
            $output .= '</li>' . "\n" . $indent;
        } else {
            $output .= '<li><b>' . $key . ':</b> ' . describeVar($value) . '</li>' . "\n" . $indent;
        }
    }
    return rtrim($output);
}
Example #2
0
        if (isset($level['class']) and strlen($level['class']) > 0) {
            $function = $level['class'] . '::' . $function;
        }
        // Arguments
        $args = array();
        if (isset($level['args'])) {
            foreach ($level['args'] as $arg) {
                $args[] = describeVar($arg);
            }
        }
        $stackDesc[] = '	<li><b>' . htmlspecialchars(trimDocumentRoot($file, 40)) . '</b> @ line <b>' . $line . '</b>: ' . $function . '(' . implode(', ', $args) . ')</li>';
    }
    $stackDesc[] = '</ul>';
}
// Compose data for error reporting
$report = array('time' => time(), 'type' => $exception ? 'exception' : 'error', 'url' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '', 'number' => $errno, 'message' => $errno, 'file' => $errno, 'line' => $errno, 'context' => '<ul>' . buildSimpleVarList($errcontext) . '</ul>', 'stack' => implode("\n", $stackDesc));
// Session identifier
if (session_id() == '') {
    session_start();
}
// Encoded data for reporting
$encodedReport = encode(json_encode($report), session_id());
?>
<!DOCTYPE html>
<html lang="en">
<head>

	<title>System error</title>
	<meta charset="utf-8">
	<meta name="robots" content="none">