 | |
09.10.2005, 18:58
| Nach oben
#21 | | Benutzer
Registriert seit: 17.08.2005
Beiträge: 87
| Zitat: |
Zitat von VolkerK Was fehlt denn? | Zitat: |
Zitat von CIX88 Die URLs kenne ich bereits, aber hat nicht geholfen. | Na los, arbeite mit uns, nicht gegen uns.
Bei mir funktioniert es.
Einfach ErrorDocument 404 /missing.php eingetragen und missing.php besteht aus <pre><?php print_r($_SERVER); ?></pre>
Die Pfadangaben sind wie erwartet vorhanden, unabhängig davon, ob php per cgi oder als Modul betrieben wird (Apache 2.0x)
Geändert von VolkerK (09.10.2005 um 19:00 Uhr).
|
| |
09.10.2005, 19:34
| Nach oben
#22 | | Goldman.de
Registriert seit: 09.10.2005 Ort: Frankfurt am Main
Beiträge: 190
|
.htaccess ( iss klar )
ErrorDocument 404 pfad/404.php
file 404.php PHP-Code: <?php /* * - Filename: 404.php * - Autor: J. Mueller * - Contact: info[at]swbulletin[dot]de * - modified: 07.06.2005 * */
error_reporting(E_ALL);
// Header für IE senden, da er sonst eine eigene Seite nutzt
header("HTTP/1.0 200");
$root="../"; // system.ini file $_INI=parse_ini_file($root.'files/system.ini', true); $empf=$_INI['errormail']['mail']; ?>
<!-- HTML-Code der Seite -->
<html>
<head>
<title> 404 Seite nicht gefunden</title>
</head>
<body>
<?php
// Funktion für einen Eintrag ins Logfile
function log_file_eintrag($file, $meldung)
{
//öffnet das gewünschte Logfile
@$fp=fopen ("../logs/404_$file.log","a");
if (false===$fp)
{ // Konnte nicht ins Log schreiben -> Mail an Admin
mail($empf,"404 Logfile voll $file","");
}
else
{ // Info im Log speichern
fputs($fp,$meldung);
fclose($fp);
}
}
// Gibt die Meldung für den User auf dem Bildschrim aus
function meldung ($origin,$server, $referer)
{
echo "<center><b>Die gewünschte Seite konnte ";
echo "leider nicht gefunden werden</b></center>";
// Interner Link ins Leere gelaufen?
if ("intern"===$origin)
{ // Interner Link, dann kann unser Admin reparieren
echo "<p align=\"center\">Der Administrator wurde ";
echo "benachrichtigt</p>";
}
else
{ // Link von externer Seite oder direkt eingetippt,
// da kann unser Admin nichts machen
echo "<p align=\"center\">Bitte aktualisieren Sie ";
echo "Ihre Links</p>";
}
// Zurück zur Homepage
echo "<center><a href=\"http://$server\">Hier</a> ";
echo "gelangen Sie zu unserer Startseite<br />";
if (""!=$referer)
{ // Wenn wir einen Referer haben, kann er
// auch zurückgehen
echo "<center><a href=\"$referer\">Hier</a> kommen Sie";
echo " zur letzten Seite, die Sie besucht haben <br />";
}
}
$server=$_SERVER["HTTP_HOST"];
$referer=true==isset($_SERVER["HTTP_REFERER"]) ? $_SERVER['HTTP_REFERER'] : '';
$meldung="[".date("Y-m-d-h:i:s")."] 404 Seite nicht gefunden";
$meldung .="\nGesuchte Seite: ".$_SERVER['REQUEST_URI'];
if (true==isset($_SERVER['HTTP_REFERER'])) { $meldung .="\nReferer: ".$_SERVER['HTTP_REFERER']; }
$meldung .="\nClient-IP: ".$_SERVER['REMOTE_ADDR'];
$meldung .="\nClient Infos: ".$_SERVER['HTTP_USER_AGENT']."\r\n";
// Ist ein Link dieses Servers ins Leere gelaufen?
// Oder kommt er von einem anderen Server?
if (false===stristr($referer,$server))
{ // Link von extern
// Eintrag in Logfile für Links von extern
log_file_eintrag("extern",$meldung);
// Meldung für User ausgeben
meldung("extern",$server, $referer);
}
else
{
// Eintrag in Logfile für Links von intern
log_file_eintrag("intern",$meldung);
// Mail an Admin
mail ($empf,"[404] auf $server",$meldung);
// Meldung für User ausgeben
meldung ("intern",$server, $referer);
}
?>
</body>
</html> |
| |
09.10.2005, 19:43
| Nach oben
#23 | | Erfahrener Benutzer
Registriert seit: 18.03.2005
Beiträge: 591
|
Hmmmm, letztes Beispiel: http://www.cix88.de/uhu.htm
Es wird die error-Datei aufgerufen, und wo steht jetzt etwas von uhu.htm ?
Wie ich mir selber eine E-Mail schreibe, will ich garnicht wissen Zitat:
echo "<center><b>Die gewünschte Seite konnte ";
echo "leider nicht gefunden werden</b></center>";
| Und genau die will ich anzeigen lassen. |
| |
09.10.2005, 19:44
| Nach oben
#24 | | Benutzer
Registriert seit: 17.08.2005
Beiträge: 87
| Zitat:
// Header für IE senden, da er sonst eine eigene Seite nutzt
header("HTTP/1.0 200");
| Das finde ich nicht so toll.
Der Status-Code hat seine Bedeutung und soll nicht mis(t)braucht werden.
Der IE kann sehrwohl die Fehlermeldungen anzeigen. Die Nachricht muss nur (warum, weiss vermutlich nur der Bill) jeweils eine bestimmte Länge haben.
Irgendwo im MSDN gibt es auch eine halbwegs aktuelle Liste mit Status->Codelänge. Finde ich aber gerade auf Anhieb nicht (und so richtig wichtig ist mir das jetzt gerade auch nicht), sondern nur als Anhaltspunkt http://support.microsoft.com/default...;en-us;Q294807 Zitat: |
Several frequently-seen status codes have "friendly" error messages that Internet Explorer 5.x displays and that effectively mask the actual text message that the server sends. However, these "friendly" error messages are only displayed if the response that is sent to the client is less than a specified threshold. For example, to see the exact text of an HTTP 500 response, the content length must be greater than or equal to 512 bytes.
| Also bitte im Fehlerfall auch einen Fehlerstatus zurückliefern.
|
| |
09.10.2005, 19:47
| Nach oben
#25 | | Benutzer
Registriert seit: 17.08.2005
Beiträge: 87
| Zitat: |
Es wird die error-Datei aufgerufen, und wo steht jetzt etwas von uhu.htm ?
| Hast Du Dir endlich in Deinem Fehlerbehandlungsskript <pre><?php print_r($_SERVER); ?></pre> ausgeben lassen? Du magst die Ausgabe vielleicht hier per copy&paste wiedergeben?
Und dann schau Dir halt die zitierte Funktion von php.net an.
Was.. ist.. jetzt... das Problem? Ich komme mir ein ganz klein wenig veralbert vor. Könnte daran liegen, dass Du zwar Deine Frage wiederholst aber nicht auf Gegenfragen antwortest.
edit: Es sind übrigens noch ein paar Fragen hier im Thread offen. Magst Du sie beantworten?
Geändert von VolkerK (09.10.2005 um 19:51 Uhr).
|
| |
09.10.2005, 19:52
| Nach oben
#26 | | Goldman.de
Registriert seit: 09.10.2005 Ort: Frankfurt am Main
Beiträge: 190
|
@Volker
du hast ja Recht .. but nobody is perfekt ( und Bill mit Sicherheit auch nicht )
|
| | |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | | |
Forumregeln
| Es ist dir nicht erlaubt, neue Themen zu verfassen. Es ist dir nicht erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +2. Es ist jetzt 17:02 Uhr.
|