LittleDemon WebShell


Linux premium274.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
Path : /home/whagcoha/ledger.mwagalwaservices.com/
File Upload :
Command :
Current File : /home/whagcoha/ledger.mwagalwaservices.com/dash.php

<?php
if ((!isset($_SESSION['gen256']))  ) {
  echo "<script>
        window.open('login.php','_self');
    </script>";  
}

?>

<?php

// ------------------- QUERIES ------------------- //

// 1. Total Users
$totalUsers = $conn->query("SELECT COUNT(*) AS count FROM users")->fetch_assoc()['count'];

// 2. Total logins today
$totalLoginsToday = $conn->query("
    SELECT COUNT(*) AS count 
    FROM user_logs 
    WHERE DATE(created_at) = CURDATE() AND action='login'
")->fetch_assoc()['count'];

// 3. Active users today (unique users who logged in)
$activeUsersToday = $conn->query("
    SELECT COUNT(DISTINCT user_id) AS count 
    FROM user_logs 
    WHERE DATE(created_at) = CURDATE() AND action='login'
")->fetch_assoc()['count'];

// 4. Last 10 logins
$lastLogins = $conn->query("
    SELECT u.fname, u.oname, l.ip_address, l.user_agent, l.created_at
    FROM user_logs l
    JOIN users u ON u.id = l.user_id
    WHERE l.action='login'
    ORDER BY l.created_at DESC
    LIMIT 10
");

// 5. Daily login stats for chart
$loginStats = $conn->query("
    SELECT DATE(created_at) AS day, COUNT(*) AS logins
    FROM user_logs 
    WHERE action='login'
    GROUP BY DATE(created_at)
    ORDER BY day DESC
    LIMIT 7
");
$chartLabels = [];
$chartData = [];
while ($row = $loginStats->fetch_assoc()) {
    $chartLabels[] = $row['day'];
    $chartData[] = $row['logins'];
}
$chartLabels = json_encode(array_reverse($chartLabels));
$chartData   = json_encode(array_reverse($chartData));

?>


<div class="container mt-4">
    <h2 class="mb-4">📊 User Dashboard</h2>

    <!-- Stats Cards -->
    <div class="row text-center mb-4">
        <div class="col-md-4">
            <div class="card shadow-sm p-3">
                <h4>Total Users</h4>
                <p class="fs-3 text-primary"><?= $totalUsers ?></p>
            </div>
        </div>
        <div class="col-md-4">
            <div class="card shadow-sm p-3">
                <h4>Logins Today</h4>
                <p class="fs-3 text-success"><?= $totalLoginsToday ?></p>
            </div>
        </div>
        <div class="col-md-4">
            <div class="card shadow-sm p-3">
                <h4>Active Users Today</h4>
                <p class="fs-3 text-warning"><?= $activeUsersToday ?></p>
            </div>
        </div>
    </div>

    <!-- Chart -->
    <div class="card shadow-sm p-3 mb-4">
        <h5>Logins (Last 7 Days)</h5>
        <canvas id="loginsChart"></canvas>
    </div>

    <!-- Last 10 Logins -->
    <div class="card shadow-sm p-3">
        <h5>Last 10 Logins</h5>
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>User</th>
                    <th>IP</th>
                    <th>Device</th>
                    <th>Date</th>
                </tr>
            </thead>
            <tbody>
            <?php while ($row = $lastLogins->fetch_assoc()): ?>
                <tr>
                    <td><?= htmlspecialchars($row['fname'] . " " . $row['oname']) ?></td>
                    <td><?= htmlspecialchars($row['ip_address']) ?></td>
                    <td><?= substr(htmlspecialchars($row['user_agent']), 0, 30) ?>...</td>
                    <td><?= $row['created_at'] ?></td>
                </tr>
            <?php endwhile; ?>
            </tbody>
        </table>
    </div>
</div>

<script>
const ctx = document.getElementById('loginsChart').getContext('2d');
new Chart(ctx, {
    type: 'line',
    data: {
        labels: <?= $chartLabels ?>,
        datasets: [{
            label: 'Logins',
            data: <?= $chartData ?>,
            borderColor: 'blue',
            fill: false,
            tension: 0.3
        }]
    }
});
</script>


LittleDemon - FACEBOOK
[ KELUAR ]