Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Ich bin dabei ein Inventarscript zu schreiben und möchte nun Ereignisse in einem Log festhalten. Wenn ich nun beispielsweise einen Bildschirm in die Datenbank eintrage oder lösche ist das noch sehr einfach. Einfach einen Eintrag in die Logtabelle übergeben in der Art "Benutzer hat Bildschirm AB mit Seriennummer XY eingetragen."
Soweit funktioniert das ja auch. Problematisch wird es aber, wenn an dem eingetragenen Bildschirm etwas geändert werden soll. Es werden ja diverse Dinge eingetragen die Variabel sind. Der Standort kann sich ändern, er kann einem anderen Mitarbeiter zugewiesen werden, er kann umbenannt werden, eine Bemerkung kann geändert werden, die Kostenstelle kann sich ändern, etc. Um die Sache noch komplizierter zu machen können sich ja auch mehrere Dinge auf einmal ändern, also beispielsweise der Standort, damit der Mitarbeiter und damit auch die Kostenstelle.
Wie packt man das jetzt vernünftig in ein Logfile? Die Originalwerte aus der Datenbank übergebe ich jeweils in einem hidden-Feld. So kann man dann abgleichen
[src=php]# Dirty Code
if ($_POST'feld'] == "Originalwert aus der Datenbank") {
echo "Alles gleich.";
} else {
echo "Da hat sich was geändert. Verbindung zur Datenbank und Log schreiben".
}[/src]
Das macht für eine einzelne Prüfung (meinetwegen auch bei zwei Prüfungen) noch Sinn, aber wenn man vier, fünf oder mehr Felder auf eine Veränderung prüfen will und das auch noch mit mehreren Feldern gleichzeitig passieren kann wird das irgendwann ein ellenlanger Code der ziemlich unschön ist. Ob man auch nach jeder Prüfung eine Datenbankverbindung aufmachen muss um das zu speichern ist ebenfalls eine Frage die ich mir stelle. Kann man das nicht erstmal "sammeln" und dann alles auf einmal eintragen?
Ich hätte halt am Ende gerne einen Logeintrag der ungefähr so aussieht:
Soweit funktioniert das ja auch. Problematisch wird es aber, wenn an dem eingetragenen Bildschirm etwas geändert werden soll. Es werden ja diverse Dinge eingetragen die Variabel sind. Der Standort kann sich ändern, er kann einem anderen Mitarbeiter zugewiesen werden, er kann umbenannt werden, eine Bemerkung kann geändert werden, die Kostenstelle kann sich ändern, etc. Um die Sache noch komplizierter zu machen können sich ja auch mehrere Dinge auf einmal ändern, also beispielsweise der Standort, damit der Mitarbeiter und damit auch die Kostenstelle.
Wie packt man das jetzt vernünftig in ein Logfile? Die Originalwerte aus der Datenbank übergebe ich jeweils in einem hidden-Feld. So kann man dann abgleichen
[src=php]# Dirty Code
if ($_POST'feld'] == "Originalwert aus der Datenbank") {
echo "Alles gleich.";
} else {
echo "Da hat sich was geändert. Verbindung zur Datenbank und Log schreiben".
}[/src]
Das macht für eine einzelne Prüfung (meinetwegen auch bei zwei Prüfungen) noch Sinn, aber wenn man vier, fünf oder mehr Felder auf eine Veränderung prüfen will und das auch noch mit mehreren Feldern gleichzeitig passieren kann wird das irgendwann ein ellenlanger Code der ziemlich unschön ist. Ob man auch nach jeder Prüfung eine Datenbankverbindung aufmachen muss um das zu speichern ist ebenfalls eine Frage die ich mir stelle. Kann man das nicht erstmal "sammeln" und dann alles auf einmal eintragen?
Ich hätte halt am Ende gerne einen Logeintrag der ungefähr so aussieht:
28.05.2014 10:20:30 Uhr | Benutzer hat den Standort des Bildschirms von X nach Y geändert
28.05.2014 10:20:30 Uhr | Benutzer hat den Mitarbeiter des Bildschirms von A nach B geändert
28.05.2014 10:20:30 Uhr | Benutzer hat den Namen des Bildschirms von C nach D geändert