Detail Debug Test

1. Cek file check_access.php: ✅ ADA
Isi file:
<?php
// check_access.php
// File ini digunakan untuk mengecek akses user berdasarkan role

// Tidak perlu session_start() karena sudah ada di panggil.php

// Fungsi untuk cek apakah user sudah login
function isLoggedIn() {
    return isset($_SESSION['login']) && $_SESSION['login'] === true;
}

// Fungsi untuk cek apakah user adalah admin
function isAdmin() {
    return isset($_SESSION['role']) && $_SESSION['role'] === 'admin';
}

    // Fungsi untuk redirect jika belum login
    function requireLogin() {
        if (!isLoggedIn()) {
            header('Location: index.php');
            exit;
        }
    }

// Fungsi untuk redirect jika bukan admin
function requireAdmin() {
    requireLogin(); // Pastikan sudah login dulu
    
    if (!isAdmin()) {
        // Redirect ke halaman yang diizinkan untuk non-admin
        header('Location: kegiatan.view.php');
        exit;
    }
}

// Fungsi untuk cek akses halaman
function checkPageAccess($currentPage) {
    requireLogin(); // Pastikan user sudah login
    
    // Daftar halaman yang bisa diakses semua user
    $allowedForAll = [
        'kegiatan.view.php',
        'logout.php',
        'profile.php' // jika ada halaman profile
    ];
    
    // Jika admin, bisa akses semua halaman
    if (isAdmin()) {
        return true;
    }
    
    // Jika bukan admin, cek apakah halaman diizinkan
    if (!in_array($currentPage, $allowedForAll)) {
        header('Location: kegiatan.view.php');
        exit;
    }
    
    return true;
}
?>

2. Test requireLogin(): ✅ Function EXISTS
3. Session status:
Warning: session_start(): Session cannot be started after headers have already been sent in /home/aplikasiposinfo/public_html/panahan.aplikasipos.info/test_detail2.php on line 34
✅ Started
4. Database connection:
Warning: session_start(): Session cannot be started after headers have already been sent in /home/aplikasiposinfo/public_html/panahan.aplikasipos.info/panggil.php on line 4
✅ Connected
5. Test query kegiatan:
✅ ID: 1
✅ Nama: apasajala

6. Test akses detail.php:
🔗 Buka detail.php?kegiatan_id=1

7. Test tabel categories:
IDNameStatus
1Officialactive
2Shortbow NON Pelajar Putra jarak 20mactive
3Shortbow NON Pelajar Putri jarak 20mactive

8. Test tabel peserta:
✅ Total peserta: 177

9. Simulasi load detail.php:
Set kegiatan_id = 1

10. Struktur tabel peserta:
FieldTypeNullKey
idint(11)NOPRI
nama_pesertavarchar(100)NO
tanggal_lahirdateNO
jenis_kelaminenum('Laki-laki','Perempuan')YES
asal_kotavarchar(100)YES
nama_clubvarchar(100)YES
sekolahvarchar(100)YES
kelasvarchar(50)YES
nomor_hpvarchar(20)YES
bukti_pembayaranvarchar(255)YES
category_idint(11)YES
kegiatan_idint(11)YES


Jika semua test di atas OK, tapi detail.php masih tidak bisa dibuka, coba:

  1. Klik tombol hijau di atas
  2. Screenshot error yang muncul
  3. Cek console browser (F12) untuk JavaScript errors
  4. Cek error log PHP di server