Intereting Posts

Как регистрировать действия пользователя с php и mysql?

Я работаю над своей CMS, и я хочу, чтобы он регистрировал действия пользователей и других администраторов. Например: когда новые пользовательские регистры или администратор создают новую новость -> обновить последнюю активность.

Я хочу знать, что является лучшим и простым способом.

  • Создайте таблицу в своей базе данных для регистрации активности пользователя.
  • Определите различные типы действий, которые могут произойти в вашем приложении.
  • Создайте общую функцию, которая регистрирует любую активность в этой таблице.
  • Вызовите эту функцию из любого места, где вы выполняете log-достойные действия в своем приложении.

Затем вы можете написать инструмент отчетности, который дает вашим администраторам доступ к тем зарегистрированным действиям, вы можете фильтровать по типу пользователя, времени и активности.

В моем лог-фрейме я специально отмечаю действия, которые можно рассматривать как вредоносные действия и назначать им разные числовые значения угрозы. Если сумма пользовательского значения потока достигает определенного порога, я выхожу из системы.

В идеале, если вы пишете приложение, вы пишете свой код инфраструктуры, например, журнал в самом начале, а затем используйте его во всем своем коде бизнес-логики позже.

Изменить для очистки:

Со временем вы можете собрать много записей в этой таблице. В зависимости от ваших требований вы можете делать разные вещи.

  • Удалите любые записи старше x дней (может быть, год)

  • Удалите любые записи определенных типов старше x дней, но продолжайте записи других типов дольше или навсегда.

  • Переместите записи старше определенного порога в таблицу журналов архива. Это позволяет сохранить основную таблицу, но позволяет вам получить доступ к более старым данным журнала, если вам действительно нужно. У меня есть флажок Use archive на моей странице журналов просмотра.

Основной ответ

Вместо того, чтобы делать это самостоятельно, с нуля, посмотрите, как это делают некоторые существующие системы, и если их лицензия позволяет, используйте их дизайн и код (убедитесь, что вы документируете, какой код вы использовали, и добавьте уведомление об авторских правах в свою CMS где-нибудь) ,

Возможно полезный пример

Я не уверен в PHP CMS, которые делают это, но я знаю, что приложение администратора Django . Django реализован в Python, но довольно просто переносить этот код на PHP. Даже если код не является прямым, дизайн можно портировать.

Файл, содержащий ведение журнала, находится в модуле admin в models.py .

Некоторые ключевые аспекты:

Модель данных для таблицы регистрации:

 class LogEntry(models.Model): action_time = models.DateTimeField(_('action time'), auto_now=True) user = models.ForeignKey(User) content_type = models.ForeignKey(ContentType, blank=True, null=True) object_id = models.TextField(_('object id'), blank=True, null=True) object_repr = models.CharField(_('object repr'), max_length=200) action_flag = models.PositiveSmallIntegerField(_('action flag')) change_message = models.TextField(_('change message'), blank=True) objects = LogEntryManager() 

И LogEntryManager, который сохраняет фактические записи журнала:

 class LogEntryManager(models.Manager): def log_action(self, user_id, content_type_id, object_id, object_repr, action_flag, change_message=''): e = self.model(None, None, user_id, content_type_id, smart_unicode(object_id), object_repr[:200], action_flag, change_message) e.save() 

HTH, удачи!

Я использую две таблицы для действий, один из которых дает каждому виду идентификатор, а другой – только идентификатор пользователя, идентификатор активности и временную метку. Я делаю это, потому что int занимает меньше места, чем строка, поэтому зачем записывать одни и те же строки снова и снова? Второй не нужен, вы просто так же легко сохраняете коды действий в текстовом файле для своей собственной ссылки, но db просто кажется более легким местом для запоминания.

Раньше я использовал функцию для обработки фактических действий по регистрации, но в следующий раз, когда я это сделаю, я буду использовать шаблон Observer. Он выглядит намного более гибким, и мне уже пришлось отредактировать вызовы функций регистрации из старого кода, который у меня есть, который ничего не собирается записывать. Я предпочитаю повторное использование кода без необходимости редактирования.

Его очень просто сделать с PHP / JAVA FUNCTION JQUERY и его методом публикации данных AJAX … Перед публикацией решения – Давайте прочитаем эти две строки

Почему и что мы хотим записать? — Как известно только для записи транзакции в базе данных – не все клики и чеки – но да, возможно, с этим решением ….

Вот шаг за шагом:

 1. create a DB Table -- to record these things a) Page Name. b) logged in user name c) session details (To record all the sessions). d) POST/GET data details (To record all the post/get data for the page) e) Record Created Date. 

или любую другую вещь, которую вы хотите записать. 2. Создайте функцию JQuery или функцию PHP, которая будет автоматически запускаться с каждой страницы. 3. Эта функция будет собирать весь сеанс этой страницы, пользователь регистрируется в деталях и какие данные переданы на эту страницу. Помимо этого – вы также можете записывать – с какой страницы эта новая страница называется – ее довольно простой и лучший способ реализовать функции записи журналов даже в уже запущенном старом программном обеспечении 🙂

Если вы хотите, чтобы весь код i, упомянутый выше, использовался – Ищите его по сети NET, который я определил, вам нужен только код функции FUNCTION CODE – AUTO – простой