Seite 1 von 1

Error Protokoll erstellen

Verfasst: 09.04.2006 23:23
von Borstenhorst
Hallo,
möchte folgendes realisieren, wenn der Benutzer einen Fehler verursacht bzw findet (404 403 etc) dann möchte ich das eine Mail generiert wird.
Habe das bis jetzt so gelöst.
In der .htaccess die errorpages definiert zB

Code: Alles auswählen

ErrorDocument 404 http://www.url.de/index.php?seite=error&error=404
in der index.php

Code: Alles auswählen

case error:
require "error.php";

//ausgabe für benutzer
eval("\$ausgabe_inhalt=\"".vorlage_holen("error")."\";"); 
break;
so und dann die error.php

Code: Alles auswählen

<?php
$config[errormail]="error@ich.de";
$config[mailabsender]="error@ich.de";
$mailtext="
Error auf url.de
Reason $_GET[error]
IP $_SERVER[REMOTE_ADDR]
Fehlerseite:
";


mail($config[errormail], "Error url", $mailtext, "From: ".$config[mailabsender]) or die("Fehler beim Versand der Mail!");

?>
So klappt auch wunderbar nur möchte ich gerne wissen welche Seite der Benutzer versucht hat zu öffnen, gibt es da eine Art Referer Variable oder wie kann ich das irgendwie integrieren, das wäre mir sehr wichtig.

Danke schonmal

Verfasst: 09.04.2006 23:46
von fanrpg

Code: Alles auswählen

$_SERVER['HTTP_REFERER']

Verfasst: 10.04.2006 00:02
von Borstenhorst
hmm da bekomem ich dann aber nur die aufrufurl http://www.url.de/index.php?seite=error&error=404
zurück
Mist wie kann man das lösen?

Verfasst: 10.04.2006 21:59
von Dennis63
Leite per .htaccess alle Fehler auf eine PHP-Datei um:

Code: Alles auswählen

ErrorDocument 400 /error.php
Und in der error.php dann folgendes:

Code: Alles auswählen

$hosturl = 'http://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
Da ist dann die vom User aufgerufene Seite drin. Die würde ich nicht per Email senden, sondern in einer DB speichern. Sonst wären 100 Error404 Seiten von Google 100 Emails an Dich.

Den User leitest Du dann danach auf einer eine error.html - Seite:

Code: Alles auswählen

	Header("Location: ".$server_host."errir.html");//
Das ist besser als eval() denke ich. eval() stehe ich sicherheitstechnisch immer sehr skeptsich gegenüber.

Grüße
Dennis

Verfasst: 13.04.2006 15:28
von Borstenhorst
Hmm leider gibt mir das dann aber als

Code: Alles auswählen

$hosturl
auch nur

Code: Alles auswählen

http://www.url.de/error.php
zurück, komisch :(

Verfasst: 13.04.2006 16:49
von Pyramide
Wenn du die Fehlerseite in der .htaccess wie von Dennis angegeben als relative URL angibst (ErrorDocument xxx /error.php statt ErrorDocument xxx http://www.blub.de/error.php), sollte es mit $_SERVER['REQUEST_URI'] funktionieren.