Fehlerseite

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Fehlerseite

Beitrag von Giga4000 »

Hi OXPUS,

ich glaube ich muss dich mal wieder stören. Ich wollte mir eine Fehlerseite mit PHP machen, bei der die IP-Adresse und die gesuchte URL per E-Mail an mich geschickt wird. Das die E-Mail verschickt wird klappt auch wunderbar, allerdings bekomme ich das mit der IP-Adresse und der gesuchten URL irgendwie nicht hin. Ich habe dir mal mein Script angehängt. Ich hoffe du kannst mir helfen.

Danke!
Dateianhänge
404.zip
(477 Bytes) 565-mal heruntergeladen
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die IP ist mit $HTTP_SERVER_VARS['REMOTE_ADDR'], die URL mit $HTTP_SERVER_VARS['REQUEST_URI'] abrufbar.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Hmm ... jetzt kommt:

Code: Alles auswählen

Notice: Undefined variable: HTTP_SERVER_VARS in /www/usersites/m-r/mx-forums/pub/error/404.php on line 5

Notice: Undefined variable: HTTP_SERVER_VARS in /www/usersites/m-r/mx-forums/pub/error/404.php on line 6
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du musst diese auch in Variablen laden.
Direkt ansprechen kannst Du die nicht.
Also u. B. $user_ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Verdammt ... ich bekomme es einfach nicht hin ¢¬

Kannst du dir das Script vielleicht nocheinmal ansehen:
Dateianhänge
404.zip
(456 Bytes) 204-mal heruntergeladen
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Ist voll easy :)
tun doch einfach

Code: Alles auswählen

$nachricht = "Hallo, soeben gab es einen Error 404 auf deinem Server:";

$nachricht = "URL:", $HTTP_SERVER_VARS['REQUEST_URI'];
$nachricht = "Browser:", $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$nachricht = "IP-Adresse:", $HTTP_SERVER_VARS['REMOTE_ADDR'];
$nachricht = "Hostadresse:", $HTTP_SERVER_VARS['HTTP_HOST'];
mit diesen ersetzen:

Code: Alles auswählen

$nachricht = "Hallo, soeben gab es einen Error 404 auf deinem Server: \n\n";
$nachricht .= 'URL: ' .$HTTP_SERVER_VARS['REQUEST_URI']. "\n";
$nachricht .= 'Browser: ' .$HTTP_SERVER_VARS['HTTP_USER_AGENT']. "\n";
$nachricht .= 'IP-Adresse: ' .$HTTP_SERVER_VARS['REMOTE_ADDR']. "\n";
$nachricht .= 'Hostadresse: ' .$HTTP_SERVER_VARS['HTTP_HOST']. "\n";
bei mir hats funktioniert - ergebnis in der Mail:

Code: Alles auswählen

Hallo, soeben gab es einen Error 404 auf deinem Server: 

URL: /test.php
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.1) 
Gecko/20060111 Firefox/1.5.0.1 
IP-Adresse: xxx.xxx.xxx.xxx 
Hostadresse: www.meinedomain.de 

EDIT: den zum Ersetzen-Code angepasst :)

Gruß Chris
Zuletzt geändert von Christian_N am Di 28.Mär, 2006 00:13, insgesamt 5-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Absätze in Emails werden mittels erstellt.
Also mit doppelten Hochkommas (nicht zwei einzelne!).
\n steht hier für "new line"
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

aua das tut weh, kurzen gehirnaussetzer stimmt ja :hh:

also müsste mein oben genannten code so lauten:

Code: Alles auswählen

   1. $nachricht = "Hallo, soeben gab es einen Error 404 auf deinem Server: \n\n";
   2. $nachricht .= 'URL: ' .$HTTP_SERVER_VARS['REQUEST_URI']. "\n";
   3. $nachricht .= 'Browser: ' .$HTTP_SERVER_VARS['HTTP_USER_AGENT']. "\n";
   4. $nachricht .= 'IP-Adresse: ' .$HTTP_SERVER_VARS['REMOTE_ADDR']. "\n";
   5. $nachricht .= 'Hostadresse: ' .$HTTP_SERVER_VARS['HTTP_HOST']. "\n";
mal ausprobiere gleich :)

EDIT: klappt wunderbar - Danke für den Denkanstoss :) - hab auch gleich mal den oben genannte Ersetz-Code angepasst :D
Zuletzt geändert von Christian_N am Di 28.Mär, 2006 00:12, insgesamt 2-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

was genau, muss wie gemacht werden um diese funktion zu nutzen zu können...

habe mal die 404.php wie von christian beschrieben abgeändert und in den forum ordner hochgeladen, allerdings geht das bei mir nicht...

habt ihr eine kurze beschreibung


liebe grüsse
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Ich musste noch $HTTP_SERVER_VARS durch $_SERVER ersetzen. Ich denke mal das kommt durch PHP 5.

Ein Problem habe ich allerdings noch ^^

Bei der URL würde ich gerne die aufgerufene URL haben und nicht die wo das Script liegt. Deshalb habe ich die Zeile durch diese ersetzt:

Code: Alles auswählen

$nachricht .= 'URL: ' .$_SERVER['HTTP_REFERER']. "\n";
Nun kommt allerdings die Fehlermeldung:

Code: Alles auswählen

Notice: Undefined index: HTTP_REFERER in /www/usersites/m-r/mx-forums/pub/error/404.php on line 8
Aber laut php.net müsste das die richtige Variable sein und in der PHP Info funktioniert es auch.
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

@blondi Du musst auch noch in den rootverzeichschniss eine Datei names .htaccess reinmachen mit folgende inhalt

Code: Alles auswählen

ErrorDocument 404 /errors/404.php
Wobei die Datei 404 in dem Ordner "errors" liegen müsste dann, man kann die aber in ein andere ordner machen dann müsste "erros" angepasst werden, liegt die im Root also wo auch index.php, portal.php ist dann dann kann man das "errors/" löschen so das es dann ggf. so aussieht

Code: Alles auswählen

ErrorDocument 404 /404.php

Solltes schon eine Datei mit dem name .htaccess haben so füge diese oben genannte Zeile einfach mit ein in die Datei :)

Sobald dann eine Datei aufrufst die nicht auf dein Server ist, wie z.B. www.deinedomain.de/blablabla.php kommt die Fehlermeldung und die Mail wird verschickt, allerdings müsste du auch in der 404.php die E-Mail Adressen anpassen da sonst der Giga4000 die E-Mail erhält.

@Giga4000 da weiss ich momentan auch kein Rat bin gerad noch dabei PHP zu verstehn :D Aber Oxpus oder Co. hat sicher ne erklärung für dich :)
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Zwei Dinge:

$_SERVER ist NICHT überall verfügbar und phpBB selber sperrt alle kurzen GLOBALS aus Sicherheitsgründen kategorisch aus!
Das wurde gemacht, da die beiden Varianten zwar zum Aufruf eines Scripts die gleichen Inhalte enthalten, aber getrennt voneinander bearbeitet/verändert werden können. Und das ist ebent nicht besonders sicher, bzw. eindeutig!
Daher immer die langen verwenden, also hier $HTTP_SERVER_VARS.

Und zum anderen ist, wie Christian_N schon schrieb, ein Fehlerdokument auf diese Weise sehr schnell selber eingebunden, sofern es die Webumgebung auch zulässt! Notfalls, wenn es eben nicht klappt, den Provider fragen.

Und warum wird dann das eigene Fehlerscript aufgerufen?
Weil der Webserver eine Anfrage erhält, diese auflöst, dann die gewünschte Datei lädt und einen 404-Fehler meldet, wenn diese fehlt, bzw. nicht an angegebener Stelle gefunden werden kann. Groß- und Kleinschreibung ist hierbei meistens auch wichtig!

Nun kann man die Standard-Seite des Webservers anzeigen lassen oder per .htaccess-Einstellung eben auf eine eigene Datei verzweigen.
Und die kann alles sein, was der Webserver ausführen kann.
Also neben HTML und PHP vielleicht sogar auch ASP, PL, CGI, etc...
Und diese Scripte werden dann auch ausgeführt, sprich: Verwendest Du ein PHP-Script, kannst Du, sofern es auch an phpBB angeschlsosen wird, Emails per emailer.php versenden.
Oder auch mit einem eigenen, selbst erstellten Email-Script (Was deutlich schwerer ist...).

Aber Achtung:
Sollte selbst diese Fehlerseite nicht aufrufbar sein, kann der Webserver in einer Endlosschleife landen oder andere Fehler erzeugen/anzeigen! Daher unbedingt vor der Einrichtung einer eigenen Fehlerseite auch testen, ob die wirklich verfügbar und aufrufbar ist!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Hmm ... aber wenn ich $HTTP_SERVER_VARS verwende kommt:

Code: Alles auswählen

Notice: Undefined variable: HTTP_SERVER_VARS in /www/usersites/m-r/mx-forums/pub/errors/404.php on line 8

Notice: Undefined variable: HTTP_SERVER_VARS in /www/usersites/m-r/mx-forums/pub/errors/404.php on line 9

Notice: Undefined variable: HTTP_SERVER_VARS in /www/usersites/m-r/mx-forums/pub/errors/404.php on line 10

Notice: Undefined variable: HTTP_SERVER_VARS in /www/usersites/m-r/mx-forums/pub/errors/404.php on line 11
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, du bindest die 404.php nicht ins phpBB ein, denke ich mnal?
Dann füge mal diese Zeile in die Datei ein (also direkt nach "<?"!):

Code: Alles auswählen

error_reporting  (E_ERROR | E_WARNING | E_PARSE);
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

[quote="oxpus - Di 28.März, 2006 19:36";p="56833"]Öhm, du bindest die 404.php nicht ins phpBB ein, denke ich mnal?[/quote]

Ja, ist richtig !!!

[quote="oxpus - Di 28.März, 2006 19:36";p="56833"]
Dann füge mal diese Zeile in die Datei ein (also direkt nach "<?"!):

Code: Alles auswählen

error_reporting  (E_ERROR | E_WARNING | E_PARSE);
[/quote]

Ja, habe ich gemacht. Die Fehlermeldung ist nun verschwunden, allerdings kommen die Mails folgendermaßen an:

Code: Alles auswählen

Hallo, soeben gab es einen Error 404 auf deinem Server: 

URL: 
Browser: 
IP-Adresse: 
Hostadresse: 
Das aktuelle Script habe ich dir nocheinmal angehängt:
Dateianhänge
404.zip
(493 Bytes) 201-mal heruntergeladen
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hm, das Script ist soweit i.O., aber komisch, daß die GLOBALS nicht verfügbar sind...
Das kann nur am Webserver oder den PHP-Einstellungen liegen.
Hast Du mal einen Link zur phpinfo?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

@Oxpus - Beitrag #10 hatte er mal ein Link angegeben zur der PHP Info :)

EDIT: ist das mit den Server wirklich so underschiedlich?
Den hatte das selbe Script also auch ohne in phpBB eingebunden auch drauf gehabt beim all-inkl.com (SharedServer) und da ging es, ohne diese änderrung

Code: Alles auswählen

error_reporting  (E_ERROR | E_WARNING | E_PARSE);
nach "<?php" und da kam bei mir keine Fehlermeldung und wurde auch richtig in der Mail alles angezeigt.
Zuletzt geändert von Christian_N am Di 28.Mär, 2006 23:14, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

register_long_arrays Off
Die langen sind nicht möglich, überhaupt nicht.
Daher verwundert es mich nun, daß $_SERVER auch nicht gehen sollte.
Versuche es aber mal damit, die Fehlermeldung in Post #10 basiert ja auf einen falschen Index, also Wertvergleich...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Dann heißt das dass auch bei jemande wo dieses auf "Off" steht garkein phpBB benutzen kann (zumindeste nicht fehlerfrei), weil phpBB aus sicherheitsgründe die lange verwendet?
Weshalb schalte den paar anbieter solche funktionen ab überhaupt gerad wenn die lange sicherer sein sollen? *kopfkratzt*
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, nein, phpBB erkennt das, man sollte das aber nicht wirklich bewusst umgehen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Ach das sind diesen dummen Freehoster. Ich werde das Script jetzt erstmal bis zum Sommer draußen lassen. Im Juni oder Juli wollte ich mir richtigen Webspace kaufen. Ich denke mal, dass ich dann das Script Fehlerfrei einsetzten kann.

Danke an alle die mir geholfen haben Bild
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Antworten