Discuz! $title Error
EOT;
echo '
Time: ' . date('Y-m-d H:i:s O') . ' IP: ' . getglobal('clientip') . ' BackTraceID: ' . $backtraceid . '
';
if (!empty($errormsg) && (!isset($_G['config']['security']['error']['showerror']) || !empty($_G['config']['security']['error']['showerror']))) {
echo '
' . $errormsg . '
';
}
if (isset($_G['config']['security']['error']['showerror']) && empty($_G['config']['security']['error']['showerror'])) {
echo '
';
}
if (!empty($phpmsg) && (!isset($_G['config']['security']['error']['showerror']) || $_G['config']['security']['error']['showerror'] == '1')) {
echo '
';
echo '
PHP Debug
';
echo '
';
if (is_array($phpmsg)) {
echo '| No. | File | Line | Code |
';
foreach ($phpmsg as $k => $msg) {
$k++;
$explode = explode('/', $msg['file']);
if (isset($explode['1']) && $explode['1'] == 'plugin') {
$guess = $explode['2'];
$bg = 'bg3';
} else {
$bg = 'bg1';
}
echo '';
echo '| ' . $k . ' | ';
echo '' . $msg['file'] . ' | ';
echo '' . $msg['line'] . ' | ';
echo '' . $msg['function'] . ' | ';
echo '
';
}
} else {
echo ' |
';
}
echo '
';
}
}
public static function clear($message) {
return str_replace(["\t", "\r", "\n"], ' ', $message);
}
public static function sql_clear($message) {
$message = self::clear($message);
$message = str_replace(DB::object()->tablepre, '', $message);
$message = dhtmlspecialchars($message);
return $message;
}
public static function write_error_log($message) {
$message = discuz_error::clear($message);
$time = time();
$file = DISCUZ_DATA . './log/' . date("Ym") . '_errorlog.php';
$hash = md5($message);
$ip = getglobal('clientip');
$user = '
User: IP=' . $ip . '; RIP:' . $_SERVER['REMOTE_ADDR'];
$uri = 'Request: ' . dhtmlspecialchars(discuz_error::clear($_SERVER['REQUEST_URI']));
$message = "\t{$time}\t$message\t$hash\t$user $uri\n";
if ($fp = @fopen($file, 'rb')) {
$lastlen = 50000;
$maxtime = 60 * 10;
$offset = filesize($file) - $lastlen;
if ($offset > 0) {
fseek($fp, $offset);
}
if ($data = fread($fp, $lastlen)) {
$array = explode("\n", $data);
if (is_array($array)) foreach ($array as $key => $val) {
$row = explode("\t", $val);
if ($row[0] != '') continue;
if ($row[3] == $hash && ($row[1] > $time - $maxtime)) {
return;
}
}
}
}
error_log($message, 3, $file);
}
}