Portal > Foren > PHP > PHP-Programmierung > htaccess und eigene Fehlermeldung
Antwort
 
Themen-Optionen
Alt 09.10.2005, 18:58 Nach oben    #21
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard

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).
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.10.2005, 19:34 Nach oben    #22
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

.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&uuml;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>
J33d3X ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.10.2005, 19:43 Nach oben    #23
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

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.
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.10.2005, 19:44 Nach oben    #24
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard

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.
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.10.2005, 19:47 Nach oben    #25
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard

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).
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.10.2005, 19:52 Nach oben    #26
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

@Volker
du hast ja Recht .. but nobody is perfekt ( und Bill mit Sicherheit auch nicht )
J33d3X ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehlermeldung: bei preg_match() Alpha Centauri PHP-Programmierung 1 07.04.2007 12:12
MySQL Fehlermeldung: Your query requires a full tablescan ... Chr!s Datenbanken 12 31.07.2006 21:45
Suche Möglichkeit htaccess User per Script zu erfahren derMaggus Tools, Server, Betriebssysteme 5 19.01.2006 20:09
fehlermeldung bei if MrBrot Allgemeine Java-Programmierung 13 23.02.2005 13:04
JBuiderX + Folgende Fehlermeldung Borusse-KLE Tools, Server, Betriebssysteme 0 13.01.2005 21:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:02 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44