Script PHP Untuk Mengumumkan Hasil Ujian

Kita sudah berada di akhir Maret. Artinya, sebentar lagi para admin sekolah akan disibukkan oleh pengumuman nilai PTS (Penilaian Tengah Semester), pengumuman hasil Ujian Sekolah, pengumuman PPDB (Penerimaan Peserta Didik Baru), dan sebagainya. Agar lebih terjaga privacy-nya, maka direncanakan agar setiap siswa hanya bisa melihat nilai dirinya sendiri. Nilai itu disajikan dalam bentuk file PDF. Siswa harus mengetik username dan password yang tepat agar nilainya muncul dan bisa diunduh.

Bagaimana script PHP-nya?

Teman-teman di MGMP dan di grup Telegram banyak yang meminta script ini. Oke lah. Saya buatkan yang paling sederhana. Tidak perlu database. Cukup sediakan file PDF. Misalkan ada 36 siswa, berarti harus ada 36 file PDF. Nama file harus berpola seperti ini: NIS-Password.pdf

Misalkan NIS (Nomor Induk Siswa) adalah 12345 dan passwordnya adalah 888, maka nama file PDF-nya adalah 12345-888.pdf. File PDF ini kemudian diunggah ke web server, pada folder yang sama dengan script PHP. Sangat mudah kan?

Silakan unduh file ini: unduh.zip (26 KB).

Cara kerja.

Username (nama pengguna) dan Password (kata sandi) yang diketik oleh user, divalidasi dulu dengan fungsi ctype_digit untuk memastikan bahwa semua yang diketik hanya angka. Tidak ada karakter berbahaya misalkan ‘/’. Setelah username dan password dipastikan aman, digabung menjadi nama file dengan format: username-password.pdf
Nama file ini lalu dicari di folder yang sama dengan file index.php.
Bila ditemukan, file PDF ditampilkan di web browser.
Bila tidak ditemukan, munculkan pesan error:

Semoga bermanfaat.

Penyanggahan:
Dengan menggunakan script ini, anda menyetujui segala konsekuensi yang akan terjadi, dan tidak akan menuntut pembuat script PHP ini bila terjadi kerusakan atau kerugian yang diakibatkan secara langsung ataupun tidak langsung karena script PHP ini. Dengan kata lain: Bila server anda kena hack, anda dipecat, atau bahkan terjadi perang Dunia ke tiga, saya tidak bertanggung jawab.

Related Posts

Leave a Reply