00001 <?php
00002 require_once
TM_PATH . 'constants.php';
00003 require_once
TM_PATH . 'juelich/web/
JuelichErrorLog.php';
00004
00014 class JuelichError {
00015
00016 var
$log;
00018 function
JuelichError() {
00019 $this->log =
new JuelichErrorLog;
00020 }
00021
00033 function
printError ($
class, $debug_info = '') {
00034 $httpCodes = array(
00035 '404' => '404 Not Found',
00036 '500' => '500 Internal Server Error',
00037 '503' => '503 Service Unavailable');
00038 $classHead = '';
00039 $httpCode = '';
00040 $httpExtra = '';
00041
switch ($class) {
00042
case 1:
00043 $classHead = 'Keine Verbindung zur Datenbank.';
00044 $httpCode = '503';
00045 $httpExtra = 'Retry-After: 60';
00046
break;
00047
case 2:
00048 $classHead = 'SQL-Statement falsch.';
00049 $httpCode = '500';
00050
break;
00051
case 3:
00052 $classHead = 'Datenbank-Zugriffsfehler.';
00053 $httpCode = '500';
00054
break;
00055
case 4:
00056 $classHead = 'Applikations-Fehler.';
00057 $httpCode = '500';
00058
break;
00059
case 5:
00060 $classHead = 'Seite unbekannt.';
00061 $httpCode = '404';
00062
break;
00063
case 6:
00064 $classHead = 'Fehler in der Adminstration';
00065 $httpCode = '000';
00066
default:
00067 $classHead = 'Unbekannter Fehler.';
00068 $httpCode = '500';
00069
break;
00070 }
00071 $this->log->logError($httpCode,
00072 $classHead,
00073 $debug_info);
00074
00075
if (
JUELICH_DEBUG || $class == 6) {
00076 echo
"<p>Fehler Nr.: $class<br>"
00077 .
"$classHead<br>"
00078 . nl2br($debug_info)
00079 .
"</p>\n";
00080 }
00081
else {
00082 $m = $httpCodes[$httpCode];
00083 header(
"HTTP/1.0 $m");
00084
if (!empty($httpExtra)) {
00085 header($httpExtra);
00086 }
00087 echo $this->
getErrorDocument($httpCode);
00088 }
00089
return;
00090 }
00091
00099 function
getErrorDocument($code) {
00100
$heading = array(
00101 '500' => array(1 => 'Serverfehler!',
00102 'Erreur du serveur!',
00103 'Server error!'),
00104 '503' => array(1 => 'Zugriff nicht möglich!',
00105 'Service inaccessible!',
00106 'Service unavailable!'),
00107 '404' => array(1 => 'Objekt nicht gefunden!',
00108 'Objet non trouvé!',
00109 'Object not found!')
00110 );
00111
00112 $extra = array(
00113 '500' => array(1 => 'Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.',
00114 'Le serveur a èté victime d\'une erreur interne et n\'a pas été capable de faire aboutir votre requête.',
00115 'The server encountered an internal error and was unable to complete your request.'),
00116 '503' => array(1 => 'Der Server ist derzeit nicht in der Lage die Anfrage zu bearbeiten. Entweder ist der Server derzeit überlastet oder wegen Wartungsarbeiten nicht verfügbar. Bitte versuchen Sie es später wieder.',
00117 'En raison de travaux de maintenance ou de problèmes de capacité le serveur n\'est pas en mesure de répondre à votre requête pour l\'instant. Veuillez réessayer plus tard.',
00118 'The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please
try again later.'),
00119 '404' => array(1 => 'Der angeforderte URL konnte auf dem Server nicht gefunden werden.',
00120 'L\'URL requise n\'a pu etre trouvée sur ce serveur.',
00121 'The requested URL was not found on
this server.')
00122 );
00123 $contact = array(1 => 'Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den <a href="mailto:%s">Webmaster</a> hierüber.',
00124 'Si vous pensez qu\'il s\'agit d\'une erreur du serveur, veuillez contacter le <a href="mailto:%s">gestionnaire du site</a>.',
00125 'If you think
this is a server error, please contact the <a href="mailto:%s">webmaster</a>.');
00126
00127 $l10n =
getDataInstance()->getAppData('l10n');
00128 $h =
$heading[$code][$l10n];
00129 $e = $extra[$code][$l10n];
00130 $c = sprintf($contact[$l10n], $_SERVER['SERVER_ADMIN']);
00131 $t = strftime('%a %b %d %T %Y %Z');
00132
$s = $_SERVER['SERVER_NAME'];
00133
00134
00135
return "<html>
00136
<head>
00137
<title>$h</title>
00138
</head>
00139
<body>
00140
<h1>$h</h1>
00141
<p>$e</p>
00142
<p>$c</p>
00143
<h2>Error $code</h2>
00144
<p>
00145
<adress>
00146
<a href=\"/\">$s</a><br>
00147
$t
00148
</adress>
00149
</body>
00150
</html>
00151
";
00152 }
00153
00154 }
00155
00156 ?>