Wenn ich eine falsche URL im Adressfeld meines Browsers angebe von meiner Domain angebe, möchte ich, dass eine von mir erstellte Fehlermeldung kommt. Wie kann ich das machen ?
Falsche URL
Einklappen
X
-
@jOhnny knOx
Datei (.htaccess) ins Root deines servers laden.
Inhalt: (für jeden Fall ein anderer)
ErrorDocument 404 /404/index.php
ErrorDocument 401 /401/index.php
ErrorDocument 403 /403/index.php
ErrorDocument 500 /500/index.php
Die entsprechenden Ordner 404,401,403,500, im Root erstellen und die index Dateien da reinladen.
Fertig.
Kommentar
-
nein, mehr ist das nicht.
Mit der .htaccess im Root kannst du die Konfiguration des Servers steuern...
zum Bleistift:
wenn der Server des Hosters keine anderen Dateiendungen als .html oder .htm akzeptiert, kannst du entweder eine Umleitung basteln oder in die .htaccess schreiben:
DirectoryIndex index.php index.html index.htm
jetzt wird erst mal gecheckt ob index.php existiert.. wenn ja, ist diese auch erreichbar....
Das geht mit allen Endungen, die der Browser frisst... .shtml .swf usw..
Dann aber für jede Endung eine eigene Zeile:
DirectoryIndex index.php index.html index.htm
DirectoryIndex index.swf index.html index.htm
DirectoryIndex index.shtml index.html index.htm
Voraussetzung ist SSI Implementierung.
Kommentar
-
Original geschrieben von tobias_k
Die entsprechenden Ordner 404,401,403,500, im Root erstellen und die index Dateien da reinladen.
ErrorDocument 404 /error404.php
ErrorDocument 401 /error401.php
funktioniert doch genauso gut.
oder gleich die universelle fehlerseite error.php machen, und dieser dann nur per parameter übergeben, um welchen error es sich handelt:
ErrorDocument 404 /error.php?errno=404
ErrorDocument 401 /error.php?errno=401
;-)I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
das war doch nur ne vereinfachte darstellung.
klar kann man das alles zusammen packen.
frage:
@wahsaga: okay, ich übergebe meinen fehler per parameter.
doch wie bekomme raus, welcher fehler aufgetreten ist?
browser sendet anforderung an den server und der 404er tritt auf,
doch woher weiß error.php das?
mfg eddi[color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]
Kommentar
-
So funktioniert es:
htaccess:
ErrorDocument 400 /error.php3?error=400
ErrorDocument 401 /error.php3?error=401
ErrorDocument 402 /error.php3?error=402
ErrorDocument 403 /error.php3?error=403
ErrorDocument 404 /error.php3?error=404
ErrorDocument 500 /error.php3?error=500
Ruft ein Surfer aus Versehen eine Seite auf, die gar nicht existiert, wird jetzt die Seite error.php3 aufgerufen und eine Variable mit dem Fehlercode übergeben. Die obige Liste lässt sich beliebig erweitern, ohne dass man für jeden Fehlercode eine eigene Seite erstellen muss.
Oben auf der Seite error.php3 ist noch folgender Eintrag nötig:
<?php
$header = "Content-Type: text/plain; charset=\"us-ascii\"\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
$header .= "FROM: name@domain.de\n"; // eMail-Adresse des Absenders
$msg = "Error $error\n\n"; // Error-Code
$msg .= "Browser: $HTTP_USER_AGENT\n\n"; // Verwendeter Browser
$msg .= "IP-Adresse: $REMOTE_ADDR\n\n"; // IP-Adresse
$msg .= "Requested URL: $REQUEST_URI\n\n"; // URL der Datei die
angefordert wurde
$msg .= "Refering URL: $HTTP_REFERER\n\n"; // URL die auf diese
Datei verweist
$mailto = "name@domain.de"; // eMail-Adresse des Empfängers
mail("$mailto","Error $error","$msg","$header");
?>
Danach folgt wieder ganz gewöhnlicher HTML Code, um das Ganze in ein nettes Layout zu stecken. Mit <?php echo $error; ?> wir auch der Fehlercode auf der Seite angegeben.
Beispiel:
<html>
<head>
......
</head>
<body>
<p align="center"><h5>Error <?php echo $error ?></h5></p>
</body>
</html>
Natürlich kann man den Fehlercode beliebig oft, etwa auch im Title-Tag (<titlte>Error <?php echo $error; ?></title) einfügen. Das Ganze lässt sich per IF-Abfrage noch in einen Body einbauen, je nach Fehlercode.
QUELLE: http://drweb.de/programmierung/php_2.shtml
Kommentar
-
...oder mach dir 'ne .txt Datei, lad sie hoch und benenn sie um...Angehängte Dateien
Kommentar
-
@tobias_k:
okay, alles klar.
nun aber, ich mein, vielleicht drückt die herrliche sonne mir heute ein
wenig auf die birne, doch mir ist immernoch nicht klar, wie die vari
$error gefüllt wird. ich meine, woher weiß die jetzt ob 404 oder 500?
[color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]
Kommentar
-
Original geschrieben von mister_x1
nun aber, ich mein, vielleicht drückt die herrliche sonne mir heute ein
wenig auf die birne, doch mir ist immernoch nicht klar, wie die vari
$error gefüllt wird. ich meine, woher weiß die jetzt ob 404 oder 500?
ErrorDocument 400 /error.php3?error=400
ErrorDocument 401 /error.php3?error=401
einmal mit dem parameter 400, einmal mit 401, etc...I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Kommentar