Tidak semua Aplikasi Web yang dihasilkan oleh PHPMaker selalu menggunakan halaman yang dibangkitkan oleh PHPMaker. Kadang-kadang, ada beberapa halaman atau file .php buatan Web Developer sendiri yang harus disertakan ke dalam Aplikasi Web tadi.
Sebenarnya sudah ada fitur Custom Files yang bisa dioptimalkan untuk hal ini. Kita sebagai Web Developer hanya tinggal memastikan pilihan Include common files pada jendela dialog Custom Files tidak diaktifkan.
Sekalipun kita tidak mengaktifkan pilihan tadi, bukan berarti kita tidak bisa memanfaatkan fitur Security yang terdapat di PHPMaker. Hanya dibutuhkan beberapa baris kode tambahan saja di halaman eksternal PHP yang kita miliki, supaya dapat menggunakan fitur Security tadi.
Katakanlah kita memiliki sebuah file eksternal PHP; yang kode-nya tidak berasal dari hasil pen-generate-an PHPMaker; dan kita ingin memastikan bahwa Pengguna Akhir Aplikasi Web hanya dapat mengakses file eksternal tersebut jika sudah berhasil login.
Maka cukup dengan menggunakan kode berikut (asumsi, kita menggunakan PHPMaker versi 2017; saat artikel ini saya tulis), kita sudah dapat melindungi halaman eksternal tadi:
<?php if (session_id() == "") session_start(); // Init session data ob_start(); // Turn on output buffering ?> <?php include_once "ewcfg13.php" ?> <?php include_once "phpfn13.php" ?> <?php if (!IsLoggedIn()) { echo "Akses ditolak. Silahkan <a href='login.php'>login</a> terlebih dulu!<br>"; } else { echo "<h1>Selamat datang di halaman eksternal ...</h1>"; echo "Ini adalah konten yang berasal dari halaman eksternal ..."; } ?>
Perhatikanlah kode di atas. Kita hanya cukup menambahkan sekitar 5 baris kode PHP saja di bagian atas dari halaman eksternal tersebut.
Pastikan kita sudah menyertakan fungsi session_id() dan session_start() untuk memastikan session sudah dikenali. Selanjutnya gunakan function ob_start() untuk menghidupkan output buffering.
Pastikan juga kita sudah memeriksa apakah Pengguna Akhir sudah berhasil login, dengan menggunakan global function IsLoggedIn(). Jika fungsi ini mengembalikan nilai FALSE, maka tampilkan pesan yang menyatakan bahwa akses ditolak dan Pengguna Akhir harus login terlebih dulu.
Sebaliknya, jika fungsi IsLoggedIn tadi mengembalikan nilai TRUE, maka itu artinya Pengguna Akhir dapat mengakses konten dari halaman eksternal PHP tadi.
Nah, meskipun Anda tetap dapat menggunakan halaman eksternal PHP tadi dari luar project PHPMaker, tapi saya menyarankan agar Anda tetap mengelola file ini melalui fitur Custom Files. Pastikan sekali lagi Anda tidak mengaktifkan pilihan Include common files supaya PHPMaker hanya men-generate kode yang Anda tulis di atas tadi.
Betapa mudah, cepat, dan menyenangkan sekali, bukan? 🙂
hans mengatakan
Pak Masino, saya bikin menu berdasarkan user, dan saya bikin data bertingkat dari data nasional, provinsi, kabupaten, kecamatan dan desa.
Tapi data yang ditampilkan sesuai user hanya sampai kabupaten, sisanya semua user bisa lihat.
Bagian mana yang salah?
Masino Sinaga mengatakan
Bagian Kecamatan dan Desa.
Hans mengatakan
Maaf Pak, kurang apa ya?
Masino Sinaga mengatakan
Download contoh file project PHPMaker dari artikel ini: A Case Study: Creating Provinces, Cities, Subdistricts Dynamic Selection in Websites that Generated by PHPMaker 9.1.0.