Tidak terasa hari ini kita sudah selesai membahas server event yang digunakan di sebagian besar halaman yang berbasiskan Table di project PHPMaker. Selanjutnya kita membahas server event yang terdapat di halaman yang tidak berbasis Table, tapi halaman khusus lainnya, seperti Login pada Aplikasi Web yang dihasilkan oleh PHPMaker.
Tidak bisa dihindari bahwa Web Developer ingin menambahkan business-logic sendiri ketika sistem memvalidasi data Pengguna yang sedang login. Misalnya, untuk Pengguna dengan Username tertentu, Anda ingin memastikan bahwa Password yang dimasukkan oleh Pengguna tersebut sudah sesuai dengan kriteria keamanan sistem. Mengenai hal ini sengaja tidak dibahas secara detail, karena tergantung kepada business-logic Anda sendiri.
PHPMaker sudah menyediakan sebuah server event yang bernama User_LoggingIn. Sesuai dengan namanya, server event ini akan dipanggil saat Pengguna sedang login di Aplikasi Web. Lebih tepatnya, sebelum sistem memvalidasi data Username dan Password yang dimasukkan Pengguna di halaman Login.
Perhatikan contoh berikut.
// User Logging In event function User_LoggingIn($usr, &$pwd) { // Masukkan kode Anda di sini ... // Untuk membatalkan, kembalikan nilai FALSE return TRUE; }
Server event User_LoggingIn memiliki dua argumen. Pertama $usr yang merupakan Username, dan yang kedua $pwd yaitu Password yang dimasukkan Pengguna di halaman Login. Dari kedua argumen tersebut, maka Anda dapat memvalidasi apakah Pengguna tersebut diijinkan untuk mengakses Aplikasi Web atau tidak.
Di server event ini Anda sebagai Web Developer masih diberi kesempatan untuk membatalkan proses Login jika sistem tidak berhasil memvalidasi data Pengguna berdasarkan data Username dan Password yang mereka masukkan di halaman Login. Cukup dengan mengembalikan nilai FALSE dan menampilkan pesan kepada Pengguna yang menyatakan proses validasi Pengguna di halaman Login gagal, seperti yang ditunjukkan pada kode berikut:
// User Logging In event function User_LoggingIn($usr, &$pwd) { if ($pwd == $usr) { // ini hanya contoh sederhana saja ... $this->setFailureMessage("Password tidak boleh sama dengan Username."); return FALSE; } return TRUE; }
Secara standar, server event ini akan mengembalikan nilai TRUE jika Anda tidak menambahkan kode apapun ke dalamnya. Artinya, validasi yang digunakan adalah kode standar yang di-generate oleh PHPMaker.
Informasi tambahan lainnya yang perlu untuk diketahui, server event User_LoggingIn akan dipanggil sebelum server event User_CustomValidate yang dulu sudah pernah kita bahas melalui artikel: Alternatif Validasi Pengguna Aplikasi Web dari PHPMaker.
Artinya, jika di server event User_LoggingIn sudah mengembalikan nilai FALSE, maka server event User_CustomValidate tidak akan pernah dipanggil oleh sistem. Di sini sekaligus membuktikan bahwa PHPMaker menerapkan sistem keamanan yang berlapis yang bisa dioptimalkan oleh Web Developer pada Aplikasi Web yang dihasilkan olehnya.
Luar biasa! Betapa menyenangkannya, bukan? 🙂
Eka Dalas Pangestu mengatakan
Bagaimana membuat change password harus berisi Huruf besar,angka, dan symbol unik
pada saat user melakukan change password
Terimakasih Pak
Masino Sinaga mengatakan
Caranya bisa melalui penggunaan Masino Extensions for PHPMaker dari website ILovePHPMaker.com.