Error Protokoll erstellen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Borstenhorst
Mitglied
Beiträge: 146
Registriert: 19.01.2004 18:37
Wohnort: Oberursel
Kontaktdaten:

Error Protokoll erstellen

Beitrag 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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

$_SERVER['HTTP_REFERER']
Benutzeravatar
Borstenhorst
Mitglied
Beiträge: 146
Registriert: 19.01.2004 18:37
Wohnort: Oberursel
Kontaktdaten:

Beitrag 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?
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag 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
Benutzeravatar
Borstenhorst
Mitglied
Beiträge: 146
Registriert: 19.01.2004 18:37
Wohnort: Oberursel
Kontaktdaten:

Beitrag 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 :(
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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.
KB:knigge
Antworten

Zurück zu „Coding & Technik“