kostenloser Webspace werbefrei: lima-city


Log Datei erstellen möglichst einfach

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    Hallo alle zusammen,

    ich möchte gerne eine Logdatei für den Administrator erstellen, in der steht, wann der Administrator was an welcher Stelle von wo gemacht halt... also in etwa so:

    Zeit : Aufgerufen| Datei
    Zeit : Geändert | Datei | Was
    Zeit : Gelöscht | Datei


    Das muss ich allerdings in einer möglichst einfachen Form machen.
    Die Änderungen werden durch Posts bewirkt, die alle recht unterschiedlich heißen.
    Ich möchte einfach alle Posts abfangen und mit Feldname und Inhalt in eine Datei schreiben.

    Nun ist die erste Frage... wie fange ich stupide jeden Post ab.

    Die Zweite Frage wäre dann... wie baut man so was am besten auf?
    Ich bin ehrlich gesagt etwas ratlos, weil mein Kunde (Hat keine Ahnung von so was) muss diese Logdatei dann auch lesen können.

    Freue mich schon auf eure Hilfe

    Grüße
    technofan

    Beitrag zuletzt geändert: 19.2.2012 22:57:24 von technofan
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Da man zuerst mal die Informationen haben muss die man loggen möchte solltest du dazu sagen welches System du zum erstellen der artikel einsetzt.
  4. Du wirst sicherlich ein Script haben, welches der Admin nutzt, um Beiträge zu ändern.
    Da ist es doch kein Problem, zusätzlich, bei jeder Änderung, einen Datensatz mit Zeitstempel und eventuell einem Vorher-/Nachher-Vergleich des Content zu speichern.
  5. Nen paar mehr Infos sind da schon nötig:

    1. Ist alles selbst gecodet und kennst Du Dich in den Struckturen aus?
    2. Wenn kein Eigenbau, was wird verwendet? (ggf. gibt es ja schon entsprechende Mods/AddOns/etc.)
    3. Logs als Datei oder in die DB?


    Also wenn der Kunde auf die Daten recht einfach zugreifen möchte und das ganze auch noch übersichtlich sein soll. Dann solltest Du auf jeden Fall in die Datenbank, ggf. auch in eine CSV, loggen und das ganze dann via HTML aufbereiten, damit es übersichtlich bleibt. Das ganze geht zwar auch mit ner TXT, is aber net wirklich übersichtlich und mann kann auch keine Filter anwenden, um das auslesen ein wenig zu vereinfachen.
  6. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    also, das ganze ist selbst gecodet,sodass ich mich auskenne.
    Gelogt werden kann das ganze in eine DB, wobei mir eine txt aber lieber ist, weil es hinsichtlich der DB bald sehr viele Änderungen geben wird.
    Zudem wird die DB noch für ein anderes System (Mein Hausverwaltungssysten... siehe Webspace) genutzt, dass von der Homepage zu 100% getrennt werden soll.

    Zudem ist es dem Kunden später Möglich eigene Seiten anzulegen, wodurch ich auf diese dann keinen Einfluss mehr habe.
    deshalb suche ich nach einer Lösung, die schlichtweg alles mitloggen kann, egal was es ist.
    Deswegen auch stupide alle Posts abfangen...

    Ich gebe zu, das ganze hat auch etwas mit Faulheit zutun, weil ich ehrlich gesagt keine Lust habe alle 70 Seiten nochmal anzupacken um da eine Logfunktion einzubauen.
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    quote]technofan schrieb:
    Ich gebe zu, das ganze hat auch etwas mit Faulheit zutun, weil ich ehrlich gesagt keine Lust habe alle 70 Seiten nochmal anzupacken um da eine Logfunktion einzubauen.[/quote]Das schnellste wird sein in jeder Seite am Anfang ein
    <?php include('log.php'); ?>
    einzufügen. Das kannst du auch mit einem Script erreichen, sodass du das nicht bei jeder Seite extra per Hand hinschreiben musst.
    Bei neu angelegten Seiten (vom Benutzer angelegt) sollte diese Zeile ebenfalls auftauchen.
    In log.php hast du dann deine Logfunktion, die bei jeder Seite aufgerufen wird.

    technofan schrieb:
    Gelogt werden kann das ganze in eine DB, wobei mir eine txt aber lieber ist, weil es hinsichtlich der DB bald sehr viele Änderungen geben wird.
    Wo wird sich was ändern und vorallem was?
  8. Autor dieses Themas

    technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    Wo wird sich was ändern: Überall
    Was wird sich ändern: Alles

    Das ist das komplizierte... der Kunde hat die Möglichkeit jeden Krümel anzupacken und zu ändern.
    Bei einigen Sachen werden Dateien geändert, bei anderen wiederum DB Einträge.
    Ich hab nur eine einzige Seite, die auf die DB zugreift, weil das sonst nicht anders realisierbar gewesen wäre.
    Das dumme ist jetzt halt, dass alle Änderungen von unterschiedlichen scripten geändert werden, die unterschiedliche Felder haben und somit auch diese Felder unterschiedliche Namen und Inhalte.

    Deswegen muss es möglich sein, alle abgesendeten Posts ( Aus den Formularfeldern) zu erkennen... d.h. die Felder mit Namen erkennen, die Anzahl der Felder, die abgesendet wurden und danach natürlich den Inhalt... der Vorher/Nachher vergleich ist dann wieder ne andere Sache... da muss ich ja dann gucken, was neu und was alt ist.
  9. also die Daten die Eingehen kannst du ja ganz einfach erhalten:

    Lasse nen FOREACH über den $_POST laufen. Dann hast du sowohl den $key als auch deren Inhalt ($value).

    Wie die Implementierung aussieht,liegt dann ja an dir.
  10. Also, um gescheite Logs zu erstellen, muss man zwangsweise relativ tief in den Code eingreifen, wenn mann es richtig machen will. Alles andere ist Käse. Man kann nicht einfach bei gehen und schlicht alle Daten aus $_POST in nen Log klatschen, weil es dann auch passieren kann, das unverschlüsselte Passwörter im Log landen und das sollte man auf jeden Fall vermeiden.

    Um es relativ einfach zu halten, solltest Du eine Log-Klasse erstellen, die dann über ne Methode und 1-2 Parametern gefüttert wird:
    $log->add('MSG', $uid);


    Falls die UserID via Session gespeichert wird, brauchst sogar nur ein Parameter. Mit der Klasse ermittelst Du dann den UserNamen, die Uhrzeit und so weiter und speicherst das alles in eine Log Datei. (fopen('pfad/datei.endung', 'a') is der sehr praktisch).


    Wenn Du einmal die Klasse erstellt hast, ist der Rest nur noch Copy und Paste, mit ein wenig Tippen und wenn Dein Kunde dann zusätzliche Seiten erstellen will, brauchst eigentlich nur die $log->add() Methode gut dokumentieren, bzw. das ganze Projekt sollte gut dokumentiert sein, und Dein Job is damit erledigt. Falls der Kunde dann extra Seiten erstellt und die LogFunktion nicht verwendet, dann ist das nicht mehr Dein Bier. Außer Du hast eine Möglichkeit eingebaut via BackEnd extra Seiten zu erstellen, dann sollte es aber auch kein Problem sein den Vorgang dort mitzuloggen.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!