phpbar.de logo

Mailinglisten-Archive

[php] Inhalte von POST requests loggen

[php] Inhalte von POST requests loggen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Dez 8 08:59:54 CET 2005


Hi Frank,

Am Donnerstag, 8. Dezember 2005 08:17 schrieb Frank Rust:
> gibt es irgend eine Standard M�glichkeit die Parameter die per POST
> Request vom Browser �bermittelt werden in die Apache Logfiles zu
> bekommen?

eine Standardm�glichkeit ist mir nicht bekannt. Du m��test daf�r vermutlich 
ein eigenes Modul schreiben. Bei einem java-basierten Tomcat-Server w�re das 
sicherlich noch eine berrschbare Aufgabe. ;-)

Au�erdem ist es ja so, da� mit POST eine Menge Daten �bergeben werden k�nnen, 
u.a. z.B. auch hochgeladene Dateien. Das alles generell ungefiltert zu 
loggen, macht sicherlich wenig Sinn.


> Oder generell: kann ich Dinge in die Apache Logs vom PHP 
> aus schreiben? Z.B. Debugging ins error.log und Aufrufparameter
> ins access.log?

Theoretisch ja. Aber: Diese Logs haben fest definierte Formate und werden vom 
Apache selbst benutzt und i.d.R. von Werkzeugen wie LogRotate archiviert. Wo 
willst Du da POST-Daten reinschreiben? Generell w�rde ich auch von anderen 
Programmen automatisch generierte und geschriebene Dateien nicht mit eigenen 
Programmen �ndern.

Aber anders herum wird ein Schuh draus:

Schreibe doch mit PHP die POST-Daten ($_POST) des in Frage stehenden Formulars 
einfach in eine eigene, von Dir angelegte Datei. Das langt doch. Und 
derjenige, der Probleme hat, soll dann das Formular noch mal abschicken, 
w�hrend Du mit ihm am Telefon "h�ngst". Dann kannst Du sofort sehen, was 
Sache ist.


> Ich habe leider immer wieder Leute hier auf meiner Webseite, die
> behaupten alles richtig in die Formulare eingetragen zu haben und
> trotzdem funktioniert es nie. Seltsamerweise funktioniert es f�r
> mich immer, egal mit welchem Browser ichs probiere...

Erstens mal kann es sein, da� es nicht am Browser, sondern an den von Dir 
vorausgesetzten Browsereinstellungen liegt (z.B. Javascript und/oder Cookies 
aktiviert, HTTP_REFERER wird gesendet), und zweitens k�nnen auch Firewalls 
und Proxies dazwischen h�ngen, die �rger machen.

Von daher wird es sicherlich nicht reichen, die POST-Daten zu loggen. Du mu�t 
z.B. auch den Inhalt von $_SERVER dabei haben. Vielleicht f�llt Dir dann mehr 
auf.

Eine dritte, etwas heikle M�glichkeit w�re, da� es an der Verst�ndlichkeit 
Deines Formulars bzw. der Auffassungsgabe der Benutzer liegt... Wei�t Du denn 
genau, ob die alles richtig machen? Oder macht Dein Formular bei einer 
Pr�fung der eingegebenen Daten alles richtig? Vielleicht verwehrt es ja bei 
bestimmten Eingaben, die eigentlich korrekt sind, bei fehlerhafter Pr�fung 
das Abschicken?

Also Du m��test in den betreffenden F�llen mal genau kl�ren, welche Schritte 
die Anwender gemacht haben und wo was nicht funktioniert hat. Ich habe da 
schon die dollsten Dinge erlebt. Da kommst Du selbst als autodidaktischer 
Programmierer, der noch ein Bi�chen Bodenhaftung als Anwender hat, im Leben 
nicht drauf... ;-)))


> Leider kann ich die Aussagen nicht ohne gr��eren Programmieraufwand
> pr�fen, da die Daten per POST Request �bermittelt werden.

Wieso nicht? :-) Einfach eine kleines Logging-Skript schreiben und mit 
php_auto_prepend als allerersten Programmcode in alle Seiten einbinden. Wenn 
POST gef�llt ist, wird was geschrieben, sonst nicht.

Manche Aufgaben sind gar nicht so kompliziert, wenn man mal einen Augenblick 
einen Schritt zur�cktritt und sich das Ganze aus etwas Entfernung betrachtet. 
Vielfach gibt es eine verbl�ffend einfache L�sung. Man mu� sie nur 
finden. :-)


Viele Gr��e
Lutz

php::bar PHP Wiki   -   Listenarchive