Google Login with Google

How to Build an Activity Log System in PHP (Track User Actions)

How to Build an Activity Log System in PHP (Track User Actions)


📌 Thumbnail Text
“Track Everything”
“User Activity Log”
“Who Did What?”
📌 Content
📌 What is an Activity Log?

An activity log records user actions such as:

login
upload
delete
update

👉 This helps with:

debugging
security
monitoring
1️⃣ Create activity_logs table

Run this SQL:

CREATE TABLE activity_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
action VARCHAR(255),
target_id INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
2️⃣ Create logging function

Create log.php:

<?php

require_once 'db.php';

function logActivity($user_id, $action, $target_id = null) {
global $conn;

$stmt = $conn->prepare("INSERT INTO activity_logs (user_id, action, target_id) VALUES (?, ?, ?)");
$stmt->bind_param("isi", $user_id, $action, $target_id);
$stmt->execute();
}
?>
3️⃣ Log user actions
✔ Example: upload
require_once 'log.php';

logActivity($_SESSION['user_id'], 'upload_image', $image_id);
✔ Example: delete
logActivity($_SESSION['user_id'], 'delete_image', $id);
✔ Example: login
logActivity($user['id'], 'login');
4️⃣ View logs (admin only)

Create:

/hosting/foliocraft/html/activity_logs.php
<?php

require_once 'auth_role.php';
requireRole('admin');

require_once 'db.php';

$result = $conn->query("
SELECT a.*, u.username
FROM activity_logs a
LEFT JOIN users u ON a.user_id = u.id
ORDER BY a.id DESC
");

while ($row = $result->fetch_assoc()):
?>

<div>
[<?= $row['created_at'] ?>]
<?= $row['username'] ?> → <?= $row['action'] ?> (ID: <?= $row['target_id'] ?>)
</div>

<?php endwhile; ?>
🔥 Key Features
track all important actions
admin monitoring
debugging support
🔐 Security Tips
log sensitive actions only
do not log passwords
restrict logs to admin only
✅ Summary

To build activity log:

Create log table
Create logging function
Track user actions
Build admin viewer
🚀 Next Step

You can extend this by:

filter logs (by user / action)
search logs
export logs (CSV)
real-time monitoring

Hope this helps 🚀
← Back to list
💬 Comments (0)