403Webshell
Server IP : 172.67.187.206  /  Your IP : 172.71.28.155
Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586
User : SYSTEM ( 0)
PHP Version : 5.6.30
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  E:/Inetpub/www/training/admin - Copy/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : E:/Inetpub/www/training/admin - Copy/statistics.php
<?php
include("../session.php");

// ตรวจสอบสิทธิ์ admin
if ($role != 'admin') {
    header("Location: ../index.php");
    exit;
}

include("../db.php");

// สถิติทั่วไป
$stats = [
    'total_users' => 0,
    'total_subjects' => 0,
    'total_questions' => 0,
    'total_exams' => 0,
    'pass_rate' => 0,
    'avg_score' => 0
];

// จำนวนผู้ใช้ (เฉพาะ role = 'user')
$result = mysqli_query($conn, "SELECT COUNT(*) as count FROM users WHERE role = 'user'");
if ($row = mysqli_fetch_assoc($result)) {
    $stats['total_users'] = $row['count'];
}

// จำนวนวิชา
$result = mysqli_query($conn, "SELECT COUNT(*) as count FROM subjects");
if ($row = mysqli_fetch_assoc($result)) {
    $stats['total_subjects'] = $row['count'];
}

// จำนวนคำถามทั้งหมด
$result = mysqli_query($conn, "SELECT COUNT(*) as count FROM questions");
if ($row = mysqli_fetch_assoc($result)) {
    $stats['total_questions'] = $row['count'];
}

// จำนวนการสอบทั้งหมด
$result = mysqli_query($conn, "SELECT COUNT(*) as count FROM exam_results");
if ($row = mysqli_fetch_assoc($result)) {
    $stats['total_exams'] = $row['count'];
}

// อัตราการสอบผ่าน
if ($stats['total_exams'] > 0) {
    $result = mysqli_query($conn, "SELECT COUNT(*) as count FROM exam_results WHERE passed = 1");
    if ($row = mysqli_fetch_assoc($result)) {
        $stats['pass_rate'] = round(($row['count'] / $stats['total_exams']) * 100, 2);
    }
}

// คะแนนเฉลี่ย
$result = mysqli_query($conn, "SELECT AVG(percentage) as avg_score FROM exam_results");
if ($row = mysqli_fetch_assoc($result)) {
    $stats['avg_score'] = round($row['avg_score'], 2);
}

// สถิติการสอบแต่ละวิชา
$subject_stats = [];
$result = mysqli_query($conn, "SELECT id, name FROM subjects ORDER BY name");
while ($subject = mysqli_fetch_assoc($result)) {
    $subject_id = $subject['id'];
    
    // จำนวนการสอบในวิชานี้
    $res = mysqli_query($conn, "SELECT COUNT(*) as count FROM exam_results WHERE subject_id = $subject_id");
    $exam_count = 0;
    if ($row = mysqli_fetch_assoc($res)) {
        $exam_count = $row['count'];
    }
    
    // จำนวนผู้สอบผ่าน
    $res = mysqli_query($conn, "SELECT COUNT(*) as count FROM exam_results WHERE subject_id = $subject_id AND passed = 1");
    $pass_count = 0;
    if ($row = mysqli_fetch_assoc($res)) {
        $pass_count = $row['count'];
    }
    
    // อัตราการผ่าน
    $pass_rate = 0;
    if ($exam_count > 0) {
        $pass_rate = round(($pass_count / $exam_count) * 100, 2);
    }
    
    // คะแนนเฉลี่ย
    $avg_score = 0;
    $res = mysqli_query($conn, "SELECT AVG(percentage) as avg FROM exam_results WHERE subject_id = $subject_id");
    if ($row = mysqli_fetch_assoc($res)) {
        $avg_score = round(isset($row['avg']) ? $row['avg'] : 0, 2); // แก้ไขตรงนี้จาก ?? เป็น ternary operator
    }
    
    // จำนวนข้อสอบในวิชานี้
    $res = mysqli_query($conn, "SELECT COUNT(*) as count FROM questions WHERE subject_id = $subject_id");
    $question_count = 0;
    if ($row = mysqli_fetch_assoc($res)) {
        $question_count = $row['count'];
    }
    
    $subject_stats[] = [
        'id' => $subject_id,
        'name' => $subject['name'],
        'exams' => $exam_count,
        'pass_count' => $pass_count,
        'pass_rate' => $pass_rate,
        'avg_score' => $avg_score,
        'questions' => $question_count
    ];
}

// สถิติการสอบล่าสุด (10 รายการ)
$recent_exams = [];
$result = mysqli_query($conn, "
    SELECT e.*, u.username, s.name as subject_name 
    FROM exam_results e
    JOIN users u ON e.user_id = u.id
    JOIN subjects s ON e.subject_id = s.id
    ORDER BY e.test_date DESC
    LIMIT 10
");

while ($row = mysqli_fetch_assoc($result)) {
    $recent_exams[] = $row;
}

// ผู้ใช้ที่มีกิจกรรมมากที่สุด (5 อันดับแรก)
$active_users = [];
$result = mysqli_query($conn, "
    SELECT u.id, u.username, COUNT(e.id) as exam_count 
    FROM users u
    JOIN exam_results e ON u.id = e.user_id
    GROUP BY u.id
    ORDER BY exam_count DESC
    LIMIT 5
");

while ($row = mysqli_fetch_assoc($result)) {
    $active_users[] = $row;
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>สถิติการใช้งานระบบ</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js"></script>
    <style>
        body { padding-top: 20px; }
        .stat-box {
            text-align: center;
            padding: 15px;
            margin-bottom: 20px;
            border-radius: 5px;
            color: white;
        }
        .stat-box h4 { font-size: 16px; margin-top: 0; }
        .stat-box .number { font-size: 24px; font-weight: bold; }
        .bg-primary { background-color: #337ab7; }
        .bg-success { background-color: #5cb85c; }
        .bg-info { background-color: #5bc0de; }
        .bg-warning { background-color: #f0ad4e; }
        .panel { margin-top: 20px; }
        .chart-container { height: 300px; }
    </style>
</head>
<body>
<div class="container">
    <h3 class="text-center">สถิติการใช้งานระบบ</h3>
    
    <p class="text-right">
        <a href="dashboard.php" class="btn btn-default btn-sm">← กลับหน้าหลัก</a>
    </p>
    
    <!-- สถิติภาพรวม -->
    <div class="row">
        <div class="col-md-3">
            <div class="stat-box bg-primary">
                <h4>จำนวนผู้ใช้</h4>
                <div class="number"><?php echo $stats['total_users']; ?></div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="stat-box bg-success">
                <h4>จำนวนวิชา</h4>
                <div class="number"><?php echo $stats['total_subjects']; ?></div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="stat-box bg-info">
                <h4>จำนวนคำถามทั้งหมด</h4>
                <div class="number"><?php echo $stats['total_questions']; ?></div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="stat-box bg-warning">
                <h4>จำนวนการสอบทั้งหมด</h4>
                <div class="number"><?php echo $stats['total_exams']; ?></div>
            </div>
        </div>
    </div>
    
    <div class="row">
        <div class="col-md-6">
            <div class="panel panel-default">
                <div class="panel-heading">อัตราการสอบผ่าน</div>
                <div class="panel-body">
                    <div class="chart-container">
                        <canvas id="passRateChart"></canvas>
                    </div>
                </div>
            </div>
        </div>
        <div class="col-md-6">
            <div class="panel panel-default">
                <div class="panel-heading">สถิติการสอบแต่ละวิชา</div>
                <div class="panel-body">
                    <div class="chart-container">
                        <canvas id="subjectStatsChart"></canvas>
                    </div>
                </div>
            </div>
        </div>
    </div>
    
    <!-- สถิติแยกตามวิชา -->
    <div class="panel panel-default">
        <div class="panel-heading">รายละเอียดสถิติแต่ละวิชา</div>
        <div class="panel-body">
            <table class="table table-bordered table-striped">
                <thead>
                    <tr>
                        <th>วิชา</th>
                        <th>จำนวนข้อสอบ</th>
                        <th>จำนวนการสอบ</th>
                        <th>จำนวนผ่าน</th>
                        <th>อัตราการผ่าน</th>
                        <th>คะแนนเฉลี่ย</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($subject_stats as $subject): ?>
                    <tr>
                        <td><?php echo htmlspecialchars($subject['name']); ?></td>
                        <td><?php echo $subject['questions']; ?></td>
                        <td><?php echo $subject['exams']; ?></td>
                        <td><?php echo $subject['pass_count']; ?></td>
                        <td><?php echo $subject['pass_rate']; ?>%</td>
                        <td><?php echo $subject['avg_score']; ?>%</td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
    
    <!-- การสอบล่าสุด -->
    <div class="panel panel-default">
        <div class="panel-heading">การสอบล่าสุด</div>
        <div class="panel-body">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>วันที่</th>
                        <th>ผู้ใช้</th>
                        <th>วิชา</th>
                        <th>คะแนน</th>
                        <th>เปอร์เซ็นต์</th>
                        <th>ผลสอบ</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($recent_exams as $exam): ?>
                    <tr>
                        <td><?php echo date('d/m/Y H:i', strtotime($exam['test_date'])); ?></td>
                        <td><?php echo htmlspecialchars($exam['username']); ?></td>
                        <td><?php echo htmlspecialchars($exam['subject_name']); ?></td>
                        <td><?php echo $exam['score']; ?></td>
                        <td><?php echo $exam['percentage']; ?>%</td>
                        <td>
                            <?php if($exam['passed']): ?>
                                <span class="label label-success">ผ่าน</span>
                            <?php else: ?>
                                <span class="label label-danger">ไม่ผ่าน</span>
                            <?php endif; ?>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
    
    <!-- ผู้ใช้ที่มีกิจกรรมมากที่สุด -->
    <div class="panel panel-default">
        <div class="panel-heading">ผู้ใช้ที่มีกิจกรรมมากที่สุด</div>
        <div class="panel-body">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>ผู้ใช้</th>
                        <th>จำนวนการสอบ</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($active_users as $user): ?>
                    <tr>
                        <td><?php echo htmlspecialchars($user['username']); ?></td>
                        <td><?php echo $user['exam_count']; ?></td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<script>
// กราฟแสดงอัตราการสอบผ่าน
var passRateCtx = document.getElementById('passRateChart').getContext('2d');
var passRateChart = new Chart(passRateCtx, {
    type: 'pie',
    data: {
        labels: ['ผ่าน', 'ไม่ผ่าน'],
        datasets: [{
            data: [
                <?php echo $stats['pass_rate']; ?>,
                <?php echo 100 - $stats['pass_rate']; ?>
            ],
            backgroundColor: ['#5cb85c', '#d9534f']
        }]
    },
    options: {
        responsive: true,
        maintainAspectRatio: false,
        title: {
            display: true,
            text: 'อัตราการสอบผ่านรวม: <?php echo $stats['pass_rate']; ?>%'
        }
    }
});

// กราฟแสดงสถิติแต่ละวิชา
var subjectStatsCtx = document.getElementById('subjectStatsChart').getContext('2d');
var subjectStatsChart = new Chart(subjectStatsCtx, {
    type: 'bar',
    data: {
        labels: [
            <?php foreach ($subject_stats as $subject): ?>
                '<?php echo addslashes($subject['name']); ?>',
            <?php endforeach; ?>
        ],
        datasets: [{
            label: 'จำนวนการสอบ',
            data: [
                <?php foreach ($subject_stats as $subject): ?>
                    <?php echo $subject['exams']; ?>,
                <?php endforeach; ?>
            ],
            backgroundColor: '#337ab7'
        }, {
            label: 'อัตราการผ่าน (%)',
            data: [
                <?php foreach ($subject_stats as $subject): ?>
                    <?php echo $subject['pass_rate']; ?>,
                <?php endforeach; ?>
            ],
            backgroundColor: '#5cb85c'
        }]
    },
    options: {
        responsive: true,
        maintainAspectRatio: false,
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
});
</script>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit