Antwort
 
Themen-Optionen
Alt 31.12.2005, 13:42 Nach oben    #1
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
Standard Via htaccess alle Fehler umleiten ?

Ich kann ja in einer .htaccess mittels:

Code:
Errordocument 500 /500-Internal-Server-Error.html
Errordocument 403 /403-Access-forbidden.html
Errordocument 404 /404-Page-Not-Found.html
bei gewissen Fehlercodes meine eigenene Fehlerseiten anzeigen, habe ich hier irgendwie die Möglichkeit, jegliche Fehler auf ein Dokument umschreiben zu lassen und in diesem Dokument (soll ein php-Script sein) dann noch an die Infos ranzukommen was für ein Fehler passiert ist ? Quasi eine Art Allround-Error-Script ? Vieleicht besteht ja die möglichkeit via $_GET den Parameter an das Script zu übergeben oder ähnliches, sowas in der Art:

Code:
Errordocument * /Errorscript.php?ErrorCode=\\1
mfg
robo47
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 13:45 Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

Hmmm, gab es nicht mal so ein ähnliches Thread hier ?
Allerdings hab ich jetzt ( bei cix88.de) für jeden Fehler ein extra Datei.
Versuche mittels GET gingen bisher in die Hose.
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 14:07 Nach oben    #3
.
 
Registriert seit: 21.09.2005
Ort: CH-JP
Beiträge: 47
Standard

ich habe das immer so gemacht:

Code:
Errordocument 400 /error.php?num=400
Errordocument 401 /error.php?num=401
Errordocument 402 /error.php?num=402
Errordocument 403 /error.php?num=403
Errordocument 404 /error.php?num=404
Errordocument 500 /error.php?num=500
Natürlich wäre ich auch über eine Dynamische Lösung erfreut, nur hatte ich damit bis jetzt keine erfolge.
_root ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 14:08 Nach oben    #4
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
Standard

hmm also ich hatte die ganze zeit es in der form:

Code:
Errordocument 500 /errorscript.php?err=500
Errordocument 403 /errorscript.php?err=403
Errordocument 404 /errorscript.php?err=404
das ist mir aber noch zu dumm, ich bin grad am schauen ob ich nciht einfach ALLE anfragen auch fehlerhafte auf ein script weiterleiten kann weil in $_SERVER gibt es wenn mod_rewrite weiterleitet einen Eintrag:

REDIRECT_STATUS

da steht dann t.b. 403 oder ähnliches drin, das bringt mich jetzt schonmal ein stück weiter.

edit:
hehe grad geschrieben und jemand postet fast das gleiche
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 14:45 Nach oben    #5
.
 
Registriert seit: 21.09.2005
Ort: CH-JP
Beiträge: 47
Standard

Gibt es den eine möglichkeit das schlicht einfach alle Fehler auf error.php verwiesen werden?
Sowas in der Art, es sollen egal was einfach alle Fehler dahin umgeleitet werden, die lösung von 100-505 alle fehler in die .htaccess schreiben finde ich irgendwie lahm


Errordocument /error.php
_root ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 14:53 Nach oben    #6
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 449
Standard

Zitat:
Zitat von _root
Gibt es den eine möglichkeit das schlicht einfach alle Fehler auf error.php verwiesen werden?
Nein, das ist definitiv nicht möglich, jedenfalls nicht ohne spezielle Erweiterung für den Apache.
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 15:03 Nach oben    #7
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
Standard

hmm okay, dann heißt es doch händisch alles Eintragen ...
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 15:12 Nach oben    #8
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 449
Standard

Die .htaccess könnte man ja auch dynamisch von einem Programm oder PHP-Skript erstellen lassen..
Aber reicht es nicht aus, wenn man die häufigsten Error-Codes (400, 401, 403, 404, 407, 408, 500) in die .htaccess schreibt?
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.12.2005, 15:16 Nach oben    #9
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
Standard

.htaccess dynamisch verändern muss ich eh schon, aber das ist halt alles immer mit vorsicht zu genißenen, falscher Code in der .htaccess und schon kommt man via web nicht mehr an sein system

naja werde jetzt eh nur für die standard-fehler was einbauen, rest vieleicht irgendwann dynamisch machen.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.01.2006, 02:32 Nach oben    #10
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.212
Standard

ich bin mir nicht mehr sicher... war das mit dir CIX? Irgendwer hatte versucht (leider ohne Erfolg), dass man noch sehen kann, welche Datei eigentlich hätte aufgerufen werden sollen, so dass das in der error.php noch mit verarbeitet werden könnte - das wäre manchmal hilfreich!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.01.2006, 07:00 Nach oben    #11
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

.htaccess

Code:
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

bsp. einer 400.php
PHP-Code:
<?php
/*
 * - Filename:    400.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> 400 Falsche Anfrage</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/400_$file.log","a");
   
mail($empf,"403 Request $file","");

   if (
false===$fp)

   {  
// Konnte nicht ins Log schreiben -> Mail an Admin 

      
mail($empf,"400 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 Ressource "

   echo 
"konnte nicht bereitgestellt werden Syntaxfehler in der Anfrage</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\">&uuml;berpr&uuml;fen Sie ";

      echo 
"Ihre Anfrage</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")."] 400 Syntax Error";

$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,"[400] auf $server",$meldung); 

   
// Meldung für User ausgeben

   
meldung ("intern",$server$referer); 

}

?>

   </body>

</html>

wichtig ist die korrekte pfadangabe vom webroot aus
oder eine errorlog datei erstellen für alle anfallenden fehler

Code:
     ErrorLog /var/log/httpd/error_log
nachzulesen
http://httpd.apache.org/docs/2.0/mod...#errordocument
__________________
Code:
eval('echo "'.gzinflate(base64_decode('8zI2TjGOAAA=')).'";'); 
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
Seltsamer Fehler ... Basti PHP-Programmierung 3 29.05.2007 17:50
Fehler bei mail() Matthias959 PHP-Programmierung 11 17.07.2006 20:32
Fehler im PHP Parser oder lag der Fehler doch bei mir? Prophet PHP-Programmierung 4 12.05.2006 17:17
Oracle-DB-Zugriff via JSP macht Probleme bene23 Enterprise Java 4 08.11.2005 14:37
fehler am server oder fehler am script vodan PHP-Programmierung 26 23.05.2005 00:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00 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