Solusi Error Onlinekan Erapor SMK 2025 dengan layanan Tunneling Cloudflared atau Ngrok

Bagi operator sekolah yang menggunakan e-Rapor SMK 2025, akses dari luar jaringan lokal (seperti untuk pengisian nilai guru di rumah) seringkali dilakukan melalui layanan tunneling seperti Ngrok atau Cloudflared. Sayangnya, praktik ini seringkali memunculkan dua masalah fatal:

  1. Fatal Error: Aplikasi tidak mengenali domain yang selalu berubah.
  2. Mixed Content: CSS dan JavaScript tidak terpanggil (tampilan berantakan) karena konflik HTTP dan HTTPS.

Masalah ini biasanya terjadi karena e-Rapor SMK 2025 dibangun di atas framework yang membutuhkan URL dasar (BaseURL) yang statis. Mari kita perbaiki masalah ini secara permanen!


Mengapa e-Rapornya Error di Ngrok/Cloudflared?

1. Konflik BaseURL Dinamis

Setiap kali Anda menjalankan ngrok atau Cloudflared secara gratis, domain yang dihasilkan (contoh: a1b2c3d4.ngrok-free.dev) akan berbeda. Aplikasi e-Rapor (yang kemungkinan besar menggunakan CodeIgniter atau sejenisnya) tidak mampu mendeteksi perubahan ini dan memicu Fatal Error.

2. Mixed Content (HTTPS vs HTTP)

Layanan tunneling memberikan Anda koneksi eksternal yang aman (HTTPS). Namun, aplikasi e-Rapor Anda di server lokal masih menghasilkan tautan aset (CSS, JS) menggunakan protokol tidak aman (HTTP). Browser akan memblokir tautan HTTP ini pada halaman HTTPS, sehingga tampilan menjadi rusak.


Langkah Solusi: Memanfaatkan Konstruktor PHP

Solusi yang paling efektif adalah dengan memodifikasi file konfigurasi utama aplikasi (biasanya di file Config/App.php jika menggunakan CodeIgniter) menggunakan method __construct(). Metode ini akan dijalankan pertama kali untuk secara otomatis mendeteksi domain dan protokol yang sedang digunakan.

Langkah 1: Temukan File Konfigurasi

Cari file konfigurasi utama di direktori aplikasi e-Rapor Anda. Biasanya berada di jalur seperti:

C:\newappraporsmk/wwwroot/app/Config/App.php

Langkah 2: Tambahkan Skrip Deteksi Dinamis

Di dalam kelas App, pastikan properti $baseURL disetel menjadi kosong, lalu tambahkan *method* __construct() seperti di bawah ini:

Skrip yang Perlu Ditambahkan/Disesuaikan:


// Pastikan properti $baseURL disetel menjadi kosong:
public $baseURL = ''; 

/
 * Konstruktor
 * Digunakan untuk mengatur BaseURL dinamis dan mengatasi Mixed Content.
 */
    public function __construct()
    {
        if (empty($this->baseURL)) {
            if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' || 
                (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
            ) {
                $protocol = 'https';
            } else {
                $protocol = 'http';
            }
            $host = $_SERVER['HTTP_HOST'] ?? '';
            $path = dirname($_SERVER['SCRIPT_NAME']);
            $path = $path === '/' || $path === '\\' ? '' : $path;
            $this->baseURL = $protocol . '://' . $host . $path . '/';
        }
    }
Penting: Kode di atas harus ditempatkan dengan benar di dalam definisi kelas App di file App.php (setelah deklarasi properti dan sebelum *method* lainnya).

Hasil Setelah Implementasi

Setelah Anda menyimpan perubahan pada file konfigurasi, e-Rapor Anda akan:

  • Bebas Fatal Error: Karena $baseURL selalu diperbarui secara otomatis dengan domain ngrok/Cloudflared yang baru.
  • Tampilan Normal: Karena skrip mendeteksi koneksi HTTPS dan menghasilkan tautan aset dengan https://, mengatasi masalah Mixed Content.

Sekarang, Anda dapat membagikan link e-Rapor yang stabil dan berfungsi penuh kepada para guru tanpa khawatir harus mengganti konfigurasi setiap saat.

Bagaimana pengalaman Anda? Bagikan kendala atau tips e-Rapor lainnya di kolom komentar!

Orang biasa yang memiliki tingkat kemalasan naik - turun.
NextGen Digital... Welcome to WhatsApp chat
Howdy! How can we help you today?
Type here...