Panada: Membuat Halaman Login
![](http://2.bp.blogspot.com/-a-2NfNOb_PY/Tf2qlSBZr7I/AAAAAAAAAl4/wjUcZZBoE84/ s1600/lock.png)
Membuat login menggunakan Panada Framework tidak begitu sulit, kalo ini saya
mencoba untuk membuat tutorial bagaimana membuat halaman login. Halaman login
biasanya dibutuhkan jika user ingin mengakses halaman web yang terproteksi
atau halaman yang bersifat private.
Introduction
Hal-hal yang dibutuhkan untuk membuat halaman login, terutama library yang
harus diload pada Panada, berikut diantaranya :
-
Library Request
untuk mengambil input dari user yang akan divalidasi -
Library Database
Ini bisa diabaikan jika tidak menggunakan database, dalam menyimpan username atau password.
Karena disini menggunakan database, diharapkan settingan** “config.php” **anda pada bagian database telah disetting dengan benar, sedangkan struktur tabelnya sendiri saya menggunakan seperti kode dibawah ini
CREATE TABLE IF NOT EXISTS `users` (
`id` int(3) NOT NULL auto_increment,
`username` varchar(16) NOT NULL,
`password` varchar(32) NOT NULL,
`nama_depan` varchar(32) NOT NULL,
`nama_belakang` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `users` (`id`, `username`, `password`, `nama_depan`, `nama_belakang`, `email`) VALUES
(1, 'chars19', 'b69d9bc635ccd79ad2c64bc862abe3b4', 'Lionel', 'Messi', '[email protected]');
Kebutuhan File
Ada 2 file yang akan dibuat, yaitu 1 buah file Controller dan 1 buah
file View.
-
/apps/controller/login.php
File ini adalah controller untuk penanganan login dan input userclass Controller_login extends Panada
{
public function __construct() {
parent::__construct();
$this->request = new Library_request();$this->data_login =
array(
‘has_login’ => false,
’error_stat’=>false,
’error_info’=>’’,
’name’=>’’,
’title’=>‘Silahkan Login’);
}function index(){
if($this->request->post(‘submit’))
$this->proses_login();
else
$this->view_loginform( $this->data_login);
}private function proses_login() {
$this->db = new Library_db();
$name = $this->request->post(‘username’, FILTER_SANITIZE_MAGIC_QUOTES);
$pass = $this->request->post(‘password’, FILTER_SANITIZE_STRING);$this->data_login[’name’] = $name;
$this->data_login[’error_stat’] = true ;if(! empty($name) and !empty($pass)) {
$data = $this->db->find_one(‘users’,
array(‘username’=>$name, ‘password’=>md5($pass)));
if(false == $data)
$this->data_login[’error_info’] = ‘Username / Password tidak valid’;
else {
$this->data_login[’title’] = ‘Terima kasih telah login’;
$this->data_login[‘has_login’] = true;
}
}
else
$this->data_login[’error_info’] = ‘Data tidak boleh kosong’;$this->view_loginform( $this->data_login);
}function logout() {
echo “Anda telah logout
“;
echo ‘Klik disini untuk login’;
}
}
?>
Penjelasan Kode
** baris 6:** meload library request untuk mengambil hasil post dari form .
** baris 8:** data yang akan dikirim ke view.
** baris 18-21:** mengecek apakah nilai post ‘submit’ ada, jika ada lakukan proses_login() jika tidak tampilkan view.
** baris 25:** meload library database.
** baris 27-28:** mengambil nilai post ‘username’ dan ‘password’.
Nilai post ini difilter dengan FILTER_SANITAZE_MAGIC_QUOTES
untuk username dan password, filter ini untuk melakukan escape pada karakter-
karakter tertentu.
_INFO_
** baris 30-31:** set nilai untuk view.
** baris 33:** cek apakah nilai submit ‘username’ dan ‘password’ tidak sama dengan kosong.
** baris 34:** melakukan query ke database, $this->db->find_one() ini
untuk mengambil 1 data berdasarkan argument yang
diberikan, nilai kembaliannya adalah object dari hasil
query jika data yang dicari ada, atau false jika data
tidak ada. Info tentang perintah disini.
** baris 37:** jika data yang dicari tidak ada set nilai ’error_info’.
** baris 39-40: **Login sukses.
** baris 44: baris ini dieksekusi jika, data post tidak lengkap, misalkan password atau usernamenya kosong.
** baris 50-52: adalah fungsi untuk logout()
fungsi $this->location() adalah fungsi untuk menampilkan url yang
ingin ditampilkan. [INFO](http://www.panadaframework.com/documentation/id/re
ferences/global_method.html)
-
/apps/view/loginform.php
KodeSelamat Datang __
[Logout](login/logout) action="#">
Name
value="">
Password
value='Login'>
Penjelasan Kode
variabel-variabel pada file ini adalah ‘key’ dari
_ $this->data_login_ yang dikirim lewat view, secara default Panada
akan merubah nilai ‘key’ dari sebuah array yang dikirim lewat perintah view.
Misalkan_ $data[’login’] = true_;
maka di file ‘view’, kita bisa menggunakan variabel $login yang merupakan
‘key’ dari $data, dimana nilainya adalah true.
Hal ini sama dengan kebanyakan PHP Framework yang lainnya.
** baris 8-10: adalah yang akan ditampilkan jika telah login atau loginnya sukses.
** baris 15-29: sebaliknya jika belum atau login gagal.
Note :
adalah tempat instalasi Panada
Referensi