So melden Sie Benutzer-Aktionen mit php und mysql?
Arbeite ich an meinem CMS und ich möchte es protokollieren der Aktivitäten von Benutzern und anderen Administratoren.
Zum Beispiel: wenn neue Benutzer oder admin eine neue news -> update Letzte Aktivität.
Ich will wissen, was ist die beste und einfachste Weg.
- wollen Sie nur ein Feld aktualisieren last_activity in der Datenbank, wenn eine Aktion aufgetreten oder haben Sie wirklich wollen, zu melden, was diese Aktion war?
Du musst angemeldet sein, um einen Kommentar abzugeben.
melden Sie Ihre Benutzer-Aktivität.
das kann passieren in Ihrem App.
jede Tätigkeit, die Tabelle.
Sie führen Protokoll-würdig Aktivitäten in
Ihre app.
Können Sie dann schreiben, ein reporting-tool, das gibt Ihr admins Zugang zu den aufgezeichneten Aktivitäten, können Sie Sie filtern, indem Sie Benutzer -, Zeit-und Leistungsarten.
In meiner log-Rahmen, die ich speziell Kennzeichnen Vorgänge, die könnte gesehen werden, als schädliche Aktionen und weisen Sie Sie verschiedenen numerischen bedrohlich-Werte. Wenn die Summe der ein Benutzer-thread-Wert einen bestimmten Schwellenwert erreicht, ich log-out der Benutzer.
Ideal, wenn Sie eine Anwendung schreiben, schreiben Sie Ihre Infrastruktur-code wie die Protokollierung an den Anfang und dann verwenden Sie es in alle Ihre business-Logik-code später.
Bearbeiten für die Bereinigung:
Laufe der Zeit können Sie sammeln eine Vielzahl von Datensätzen in dieser Tabelle. Je nach Ihren Anforderungen könnte man verschiedene Dinge tun.
Löschen Sie alle Einträge, die älter als x Tage (vielleicht ein Jahr)
Löschen Sie alle Einträge bestimmter Arten, die älter als x Tage, aber halten Sie Einträge von anderen Arten, für länger, oder für immer.
Verschieben von Einträgen die älter als eine bestimmte Schwelle in ein Archiv-log-Tabelle. Dies hält Ihre Haupt-Tabelle kleiner, sondern ermöglicht Ihnen den Zugriff auf ältere log-Daten-wenn Sie wirklich müssen. Ich habe eine checkbox
Use archive
auf meine rezension logs Seite.Grundsätzliche Antwort
Statt dies zu tun, sich selbst, von Grund auf, überprüfen Sie heraus, wie die bestehenden Systeme es tun, und wenn Ihre Lizenz erlaubt es, verwenden Sie Ihre design-und code (stellen Sie sicher, dass Sie dokumentieren, was code, den Sie verwendet haben, und fügen Sie einen copyright-Vermerk auf Ihrer CMS-irgendwo).
Möglicherweise Hilfreich Beispiel
Ich bin mir nicht sicher über PHP-CMS, die dies tun, aber ich weiß Django ' s admin app tut. Django ist in Python implementiert, aber es sollte ziemlich einfach zu Anschluss diesen code über PHP. Selbst wenn der code nicht um eine einfache Portierung, das design kann portiert werden.
Die Datei, die enthält die Protokollierung ist in der
admin
Modul in models.py.Einige wichtige Aspekte:
Datenmodell für die logging-Tabelle:
Und die LogEntryManager, die speichert die aktuellen log-Einträge:
HTH, viel Glück!
Ich habe zwei Tabellen, die für die Tätigkeiten, die jeder Aktivität eine id, und ein anderes, dass nur Protokolle die Benutzer-id, Aktivitäts-id und einem Zeitstempel. Ich mache dies, weil ein int nimmt weniger Platz als ein string, also warum log die gleichen Saiten über und über? Das zweite ist nicht wirklich notwendig, Sie nur so leicht halten den action-codes in eine text-Datei für Ihre eigene Referenz, aber die db scheint nur wie ein einfacher Ort, sich zu erinnern.
Habe ich In der Vergangenheit verwendet eine Funktion zur Verarbeitung der eigentlichen Protokollierung der Aktionen, aber das nächste mal Tue ich es, ich werde mit dem Observer-Muster. Es scheint zu sein, sehr viel flexibler, und ich hab schon auf Bearbeiten logging-Funktion werden Anrufe von älteren code, den ich habe, dass nicht alles loggen, was. Ich bevorzuge die Wiederverwendung von code, keine Bearbeitung erforderlich.
Seine sehr einfach zu tun mit PHP/JAVA FUNKTION JQUERY und seine AJAX Daten posten-Methode...
Vor dem posting die Lösung-Können, Lesen Sie diese zwei Zeilen
Hier ist die Lösung Schritt für Schritt: -
oder eine andere Sache, die Sie aufzeichnen möchten.
2. Erstellen Sie ein Jquery-Funktion oder PHP-Funktion--, die automatisch ausgelöst mit jeder Seite.
3. Diese Funktion sammelt alle die Sitzung, die Seite Benutzer angemeldet Einzelheiten und welche Daten übergeben, die auf dieser Seite.
Abgesehen von diesem - können Sie auch aufzeichnen-von welcher Seite diese neue Seite aufgerufen wird -- ziemlich einfachen und besten Weg zur Umsetzung loggs Aufnahme-Funktionen auch in bereits laufende alte software 🙂
Wenn Sie möchten, alle der Code, den ich oben erwähnt verwenden -- Suchen Sie über das NETZ der Mechanismus, die ich definiert haben, nur müssen Sie die FUNKTION CODE -- AUTO-Funktion ausführen, code-einfache