Tutorial PHP : Membuat Login Pada Panada Framework

Selamat malam bro, barusan saya udah nyicipin nih framework dan alhasil dapet juga ilmunya.. saya nyoba buat login logout dengan panada framework.. kayanya asik juga nih framework, Panada Framework memiliki kemiripan dengan Framework Codeigniter serta memiliki fleksibilitas yang baik, sehingga bagi programmer prosedural tidak akan terlalu kesulitan dalam menggunakannya karena tidak ada batasan dalam penamaan MVC atau penamaan Databasenya.

panada_logo

Alat Tempur yang saya gunakan :

Disini saya menggunakan 2 Library dalam Panada Framework tersebut yaitu :

  1. Database
  2. Session

Untuk database ini saya menggunakan MySQL yng sudah terinstall sepaket dengan XAMPP.. untuk tutorial mari kita mulai ya, oh iya yang mau file jadinya bisa di download di akhir postingan.. :)

Pertama kita buat dulu databasenya dan beri nama lat_login.

create database lat_login;

Nah setelah itu buat tabel dalam database lat_login dan beri nama tb_pengguna dan isi datanya.

CREATE TABLE IF NOT EXISTS `tb_pengguna` (
	`username` varchar(50) NOT NULL,
	`password` varchar(32) NOT NULL,
	`nama` varchar(100) DEFAULT NULL,
	`level` int(1) NOT NULL,
	`status` int(1) NOT NULL,
	PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `tb_pengguna` (`username`, `password`, `nama`, `level`, `status`) VALUES

('ferdhika31', md5('tamvan'), 'Ferdhika Ganteng', 1, 1),
('nurjaman', md5('tamvan'), 'Si Tamvan', 2, 1);

Nah mari kita mulai ngoding(); with panada frameworknya.. :D

oh iya Pertama mari kita setting dulu koneksi databasenya di folder ROOT/App/Config/database.php

<?php
'default' => array(
        'driver' => 'mysql',
        'host' => 'localhost',
        'port' => 3306,
        'user' => 'root',
        'password' => '',
        'database' => 'lat_login',
        'tablePrefix' => '',
        'charset' => 'utf8',
        'collate' => 'utf8_general_ci',
        'persistent' => false,
    ),
	..
	..

Kedua kita buat modelnya dulu dalam folder ROOT/App/Models dengan nama M_masuk.php

<?php 
	/**
		* @Author				: Localhost {Ferdhika Yudira}
		* @Email				: [email protected]
		* @Web					: http://dika.web.id
		* @Date					: 2015-02-15 18:40:55
	**/
namespace Models;

use Resources;

class M_masuk {
    public function __construct(){
		// DB koneksi default
		$this->db = new Resources\Database;
		$this->tb = "tb_pengguna"; //nama tabel database
    }

    public function query_masuk($user="",$pw=""){
    	$query = $this->db->results("select * from ".$this->tb." where username='".$user."' and password='".$pw."'"); //query
    	return $query[0];
    }
}

Ketiga kita buat controllernya terlebih dahulu dalam folder ROOT/App/Controllers dengan nama Dashboard.php

<?php
	/**
		* @Author				: Localhost {Ferdhika Yudira}
		* @Email				: [email protected]
		* @Web					: http://dika.web.id
		* @Date					: 2015-02-15 18:19:31
	**/
namespace Controllers;

use Resources, Models, Library;

class Dashboard extends Resources\Controller{    

	public function __construct(){
		parent::__construct();
		// Load model masuk dan library session
		$this->masuk = new Models\M_masuk; //M_masuk adalah nama file di folder Models
		$this->session = new Resources\Session();
	}

    public function index(){    
    	//jika session belum di set maka di direk ke halaman masuk
    	if(!$this->session->getValue('isLogin')){ 
    		$this->redirect('dashboard/masuk');	
    	}

        $data = array(
        	'judul' => 'Test Login',
        	'nama' => $this->session->getValue('nama'),
        	'url'	=> $this->uri->baseUri
        );

        $this->output('dashboard', $data); //load view
    }

    public function masuk(){
    	//jika session login sudah di set maka di direk ke halaman dashboard
    	if($this->session->getValue('isLogin')){
    		$this->redirect('dashboard');	
    	}

    	//variabel error pada halaman form login
    	$views['error'] = '';

    	//buat tombol masuk di tekan
		if (isset($_POST['A_masuk'])){
			$username = $_POST['A_user'];
			$password = md5($_POST['A_pass']);

			$user = $this->masuk->query_masuk($username,$password);
			if($user){
				// Username dan password sudah benar, simpan nilai ke dalam session
				$data = array(
					'isLogin' => true,
					'nama'	=> $user->nama,
					'username' => $user->username
					);
				$this->session->setValue($data);

				// Redirect ke halaman utama.
				$this->redirect('dashboard');
			}else{
				$views['error'] = 'Username atau password yang Anda input salah.';
			}
		}
    	$views['judul'] = 'Test Login';
        
        $this->output('masuk', $views); //load view
    }

    public function keluar(){
    	// Hapus session dan redirect ke halaman login.
		$this->session->destroy();
		$this->redirect('dashboard/masuk');
    }
}

Nah setelah itu kita buat view nya disini kita buat dua file yaitu buat halaman dashboard dan form loginnya dengan nama dashboard.php

Selamat datang <?php echo $nama; ?>, Mau keluar? klik <a href="<?php echo $url;?>index.php/dashboard/keluar">disini</a>

dan satunya lagi file masuk.php

<title><?php echo $judul ?></title>
<form action="" method="POST">
	Username : <input type="text" name="A_user" />
	Password : <input type="password" name="A_pass" />
	<input type="submit" name="A_masuk" value="Masuk"/>
</form>
<hr>
<?php echo $error;?>

Nah selesai deh, mari kita akses http://localhost/folder_panada/app/index.php/dashboard jika anda belum melakukan login maka anda akan di redirect ke halaman login.. jika sudah maka akan tampil seperti berikut :

RPL4rt Studio capture #239Nah selesai dah tutorial kali ini.. semoga bermanfaat yaw, oh iya.. seperti yang saya janjikan, dalam tutorial ini saya akan mencantumkan file hasil dari tutroial ini, yang kepengen monggo di download aja yaw.. :D

Download

Selamat belajar yaww.. :) untuk tutorial berikutnya saya akan mencoba membuat CRUD menggunakan Framework Panada ini.. pantengin aja ya.. :D