Tidak bisa dihindari ketika Pengguna mengakses pertama sekali sebuah Aplikasi Web, maka mereka akan langsung diarahkan ke halaman default, atau halaman utama, atau halaman depan, atau istilah yang lebih kerennya adalah halaman index. Halaman default ini akan pertama kali dilihat Pengguna, baik yang belum login, maupun yang sudah berhasil login.
Halaman default biasanya ditampilkan ke Pengguna setelah mengunjungi alamat URL utama dari sebuah Aplikasi Web. Selain itu, halaman default tadi bisa juga ditampilkan setelah Pengguna berhasil login ke Aplikasi Web. Tentu saja seorang Web Developer harus menentukan halaman default mana yang dapat diakses pertama kali oleh Pengguna yang belum login, dan halaman default mana yang bisa dilihat Pengguna setelah berhasil login.
PHPMaker sudah menyediakan sebuah server event untuk menangani kondisi tersebut. Nama server event itu adalah Page_Redirecting yang lokasinya berada di bawah Server Events -> Other -> Default Page dari dalam project PHPMaker Anda. Seperti namanya, server event ini akan dipanggil ketika sistem mengarahkan Pengguna ke halaman default atau halaman utama.
Supaya semakin jelas, mari simak contoh berikut. Katakanlah di Aplikasi Web yang Anda bangun akan diterapkan business-logic sebagai berikut: Untuk Pengguna yang belum login, maka halaman default yang bisa diakses adalah home_guest.php, sedangkan untuk Pengguna yang sudah login, maka halaman default dibedakan lagi menjadi dua, yaitu untuk Pengguna yang memiliki username jojon akan diarahkan ke halaman home_jojon.php, sedangkan untuk Pengguna yang sudah berhasil login lainnya akan diarahkan ke halaman home_users.php.
Kode selengkapnya yang menggambarkan business-logic tadi di server event Page_Redirecting pada project PHPMaker Anda adalah sebagai berikut:
// Page Redirecting event function Page_Redirecting(&$url) { // Example: //$url = "your URL"; if (!IsLoggedIn()) { // jika pengguna belum login $url = "home_guest.php"; } else { // jika pengguna sudah berhasil login if (CurrentUserName() == "jojon") { // jika username pengguna = jojon $url = "home_jojon.php"; } else { // jika pengguna bukan jojon $url = "home_users.php"; } } }
Untuk memeriksa apakah Pengguna sudah login atau belum, maka kita cukup menggunakan global function yang sudah disediakan oleh PHPMaker bernama IsLoggedIn(). Sedangkan untuk memeriksa username Pengguna yang sudah login, kita menggunakan global function bernama CurrentUserName().
Hampir sebagian besar Aplikasi Web mengarahkan Pengguna yang belum login langsung ke halaman Login ketika mereka pertama kali mengakses Aplikasi Web tersebut. Nah, untuk menerapkan business-logic yang seperti itu, maka contoh kode di atas tadi cukup diubah menjadi seperti di bawah ini:
// Page Redirecting event function Page_Redirecting(&$url) { // Example: //$url = "your URL"; if (!IsLoggedIn()) { // jika pengguna belum login $url = "login.php"; // arahkan langsung ke halaman Login } else { // jika pengguna sudah berhasil login if (CurrentUserName() == "jojon") { // jika username = jojon $url = "home_jojon.php"; } else { // jika pengguna bukan jojon $url = "home_users.php"; } } }
Kalau Anda perhatikan dari kedua contoh kode tadi, maka Anda sebagai Web Developer dapat dengan mudahnya menentukan halaman default mana saja yang dapat diakses oleh Pengguna; baik yang belum login, maupun yang sudah berhasil login; hanya dengan menambahkan sedikit kode saja di server event Page_Redirecting tersebut.
See? Betapa mudahnya PHPMaker dapat membantu Web Developer dalam menerapkan business-logic mengarahkan Pengguna ke halaman default pada Aplikasi Web yang dihasilkan oleh PHPMaker, bukan?
ricky mengatakan
Permisi, saya mau menanyakan mengenai sintaks:
Ketika saya ketik:
http://localhost/projectPI/scripts/
Mengapa muncul error sebagai berikut ini
Error:
( ! ) Fatal error: Can’t use function return value in write context in C:\wamp\www\projectPI\scripts\index.php on line 247
Mohon bimbingan dan arahan dari Bapak… Mohon maaf saya banyak tanya… Terima kasih banyak…
Masino Sinaga mengatakan
Karena sintaks yang ini salah:
seharusnya:
ricky mengatakan
Wah iya maaf Pak saya kurang teliti… Oh iya Pak, setelah saya perbaiki ternyata tidak masuk ke $url = “pi_mahasiswalist.php”; tetapi masuk ke $url = “pi_praktiklist.php”;
Mengapa seperti itu ya Pak? Terima kasih banyak Pak…
Masino Sinaga mengatakan
Kalau masuk ke “pi_praktiklist.php”, itu artinya username yang sedang login tidak sama dengan “koordinator”.
ricky mengatakan
Owh maaf Pak… “koodinator” tersebut merupakan Administrator Login (Hard-coded), maka fungsi CurrentUserName tidak dapat digunakan ya Pak? lalu bagaimana membedakan antara login Admin dengan user biasa ya Pak? terima kasih banyak Pak…
Masino Sinaga mengatakan
Gunakan fungsi global IsAdmin(), contoh:
ricky mengatakan
Maaf Pak, sudah saya coba seperti berikut ini:
Namun kok hasilnya masih ada error :
( ! ) Fatal error: Call to undefined function IsAdmin() in C:\wamp\www\projectPI\scripts\index.php on line 247
Call Stack
# Time Memory Function Location
1 0.0010 183624 {main}( ) ..\index.php:0
2 0.0587 2681712 cdefault->Page_Main( ) ..\index.php:275
3 0.0587 2681848 cdefault->Page_Terminate( ) ..\index.php:192
4 0.0587 2681928 cdefault->Page_Redirecting( ) ..\index.php:171
Mengapa ya Pak? Kok undefined fungsi IsAdmin ya Pak? Terima kasih banyak…
Masino Sinaga mengatakan
Itu artinya, function tersebut belum di-generate oleh PHPMaker.
Solusinya, pastikan Anda sudah menggunakan/mengaktifkan Advanced Security dari menu Security di PHPMaker, lalu generate ulang semua file script dari PHPMaker seperti biasa.
Untuk info lebih lanjut, baca topik Security Settings dari menu Help PHPMaker.
ricky mengatakan
Saya sudah menggunakan yang koordinator sebagai administrator (hard coded) dan user lain saya ambil dari tabel dosen dengan login name fieldnya nip dan password fieldnya no telp. Setting mana yang harus dilakukan agar fungsi IsAdmin() dapat digenerate oleh PHPMaker? Terima kasih banyak
Masino Sinaga mengatakan
Baca kembali komentar saya di atas. Pastikan juga Anda sudah menggunakan PHPMaker versi yang terakhir; saat komentar ini saya tulis adalah versi 11.
Dudi mengatakan
Bang kalau redirectnya ke halaman lain setelah add data bagaimana ?
Misal setelah kita input data , lalu akan dilanjutkan ke halaman lain selain halaman yang di buat phpmaker , bisa kah ?
Terima kasih sebelumnya
Masino Sinaga mengatakan
Misalkan Anda ingin me-redirect ke halaman test.php, maka ketikkan halaman itu dari bagian Table setup -> Return Pages -> After add, lalu generate ulang semua file script seperti biasa.
Dudi mengatakan
thx bang …. berhasil
Masino Sinaga mengatakan
Sama-sama.
Art mengatakan
makasih om, sangat membantu
Masino Sinaga mengatakan
Sama-sama.
Negiverz mengatakan
hatur nuhun om sinaga, tutorna bermanfaat sekali atuh
Masino Sinaga mengatakan
Sami-sami, kang. 🙂