phalcon framework
Tutorial Login dan session menggunakan Phalcon PHP Framework
Baik pada tutorial kali ini saya akan memberikan tutorial menegenai pembuatan login menggunakan phalcon php framework dan juga session yang akan didaftarkan dengan phalcon.
Konsep dalam login ini adalah sbebagai berikut :
1. user sudah terdaftar di database (sebelumnya kita input manual ke database data user)
2. user menginput password dan database
3. Cek username dan password di database
4. Apabila tersedia maka daftarkan session username dan id dari user lalu pindahkan ke halaman home
5. Apabila gagal kembalikan ke form login dan beri peringatan bahwa username atau password salah.
Baik langsung saja kita persiapkan database terlebih dahulu , kita buat saja database test_phalcon.
Setelah itu kita buat tabel dengan nama tbl_user , sehingga berikut ini merupakan query untuk tabel tbl_user :
Setelah itu kita inputkan beberapa data ,contoh :
buat project dan beri nama folder dengan tutorial_phalcon_login. Lalu kita set config nya yang berada di folder app/config/config.php . Lalu kita set menjadi sepert ini :
Oke semua persiapan database dan project kita sudah selesai , selanjutnya kita persiapan untuk membuat controller dan view.
Buat controller dengan nama LoginController.php dan buat method indexAction , sehingga isi dari :
LoginController.php :
TblUser.php :
Setelah itu kita buat view dalam folder views login/index.volt. Pembuatan index.volt ini untuk membuat tampilan form login, sehingga isi dari
index.volt :
Penjelasan :
{{ form('login/proseslogin', 'role': 'form') }}
script diatas adalah script untuk memberikan action pada form tersebut yang mengarah ke LoginController dengan method prosesloginAction.
Selanjutnya setelah index.volt setelah dibuat, sekarang kita akan membuat method prosesloginAction pada loginController ,sehingga isi dari method tersebut adalah :
Penjelasan script diatas :
$tbluser = TblUser::findFirst("username='$username'");
script tersebut adalah script untuk melakukan pencarian pada model TblUser yang mana mengarah pada tabel tbl_user dan field yang di filter adalah username.
if ($tbluser)
{
if($password==$tbluser->password)
{
$this->_registerSession($tbluser);
$this->response->redirect('home');
}
}
apablia username tersebut sama maka akan d cek kembali apakah password sama , jika password sama maka akan meregistrasi session disana terdapat script $this->_registerSession($tbluser) dimana script tersebut untuk mendaftarkan session. setelah itu ada script $this->response->redirect('home') script tersebut adalah script untuk meredirect ke controller home yang otomatis akan mengarah pada method index.
Berikut ini adalah method registerSession :
Setelah itu kita buat fungsi logout , berikut ini merupakan method logoutnya :
Sehingga isi dari LoginController.php :
Setelah kita membuat LoginController selanjutnya kita buat controller Home , dimana controller ini yang dipanggil setelah login berhasil , berikut ini adalah isi dari HomeController.php.
HomeController.php :
selanjutnya kita buat view index.volt pada folder Home , sehingga isi dari index.volt yang berada pada folder Home/index.volt.
index.volt :
Konsep dalam login ini adalah sbebagai berikut :
1. user sudah terdaftar di database (sebelumnya kita input manual ke database data user)
2. user menginput password dan database
3. Cek username dan password di database
4. Apabila tersedia maka daftarkan session username dan id dari user lalu pindahkan ke halaman home
5. Apabila gagal kembalikan ke form login dan beri peringatan bahwa username atau password salah.
Baik langsung saja kita persiapkan database terlebih dahulu , kita buat saja database test_phalcon.
Setelah itu kita buat tabel dengan nama tbl_user , sehingga berikut ini merupakan query untuk tabel tbl_user :
CREATE TABLE IF NOT EXISTS `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(100) NOT NULL, `password` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Setelah itu kita inputkan beberapa data ,contoh :
INSERT INTO `tbl_user` (`id`, `username`, `password`) VALUES (1, 'mahesa', 'mahesa123'), (2, 'desta', 'destacs123');Setelah itu kita buat project pada phalcon , jika blm mengetahui cara membuat project dengan phalcon bisa ikuti link ini http://antzstudioblog.blogspot.com/2014/12/membuat-project-dengan-phalcon-framework.html
buat project dan beri nama folder dengan tutorial_phalcon_login. Lalu kita set config nya yang berada di folder app/config/config.php . Lalu kita set menjadi sepert ini :
<?php return new \Phalcon\Config(array( 'database' => array( 'adapter' => 'Mysql', 'host' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'test_phalcon', ), 'application' => array( 'controllersDir' => __DIR__ . '/../../app/controllers/', 'modelsDir' => __DIR__ . '/../../app/models/', 'viewsDir' => __DIR__ . '/../../app/views/', 'pluginsDir' => __DIR__ . '/../../app/plugins/', 'libraryDir' => __DIR__ . '/../../app/library/', 'cacheDir' => __DIR__ . '/../../app/cache/', 'baseUri' => '/tutorial_phalcon_login/', ) ));
Oke semua persiapan database dan project kita sudah selesai , selanjutnya kita persiapan untuk membuat controller dan view.
Buat controller dengan nama LoginController.php dan buat method indexAction , sehingga isi dari :
LoginController.php :
<?php class IndexController extends Phalcon\Mvc\Controller { public function indexAction() { } }Setelah itu kita buat model dengan nama TblUser.php. Sehingga isi dari model
TblUser.php :
<?php class TblUser extends \Phalcon\Mvc\Model { /** * * @var integer */ public $id; /** * * @var string */ public $username; /** * * @var string */ public $password; }
Setelah itu kita buat view dalam folder views login/index.volt. Pembuatan index.volt ini untuk membuat tampilan form login, sehingga isi dari
index.volt :
<html> <head> <title>Tutorial Login</title> </head> <body> <fieldset> <legend>Sign In</legend> {{ form('login/proseslogin', 'role': 'form') }} <table> <tr> <td> Username </td> <td> <input type="text" name="username" class="form-control" placeholder="User ID"/> </td> </tr> <tr> <td> Password </td> <td><input type="password" name="password" placeholder="Password"/></td> </tr> <tr> <td colspan=2><button type="submit" class="btn bg-olive btn-block">Log in</button> </td> </tr> <tr> <td colspan=2>{{ content() }}</td> </tr> </table> </form> </fieldset> </body> </html>Jika di jalankan maka tampilanya akan seperti berikut :
Penjelasan :
{{ form('login/proseslogin', 'role': 'form') }}
script diatas adalah script untuk memberikan action pada form tersebut yang mengarah ke LoginController dengan method prosesloginAction.
Selanjutnya setelah index.volt setelah dibuat, sekarang kita akan membuat method prosesloginAction pada loginController ,sehingga isi dari method tersebut adalah :
<?php public function prosesloginAction() { if ($this->request->isPost()) { $username = $this->request->getPost('username'); $password = $this->request->getPost('password'); $tbluser = TblUser::findFirst("username='$username'"); if ($tbluser) { if($password==$tbluser->password) { $this->_registerSession($tbluser); $this->response->redirect('home'); } } echo "Username atau password salah"; return $this->dispatcher->forward(array("action" => "index")); } }
Penjelasan script diatas :
$tbluser = TblUser::findFirst("username='$username'");
script tersebut adalah script untuk melakukan pencarian pada model TblUser yang mana mengarah pada tabel tbl_user dan field yang di filter adalah username.
if ($tbluser)
{
if($password==$tbluser->password)
{
$this->_registerSession($tbluser);
$this->response->redirect('home');
}
}
apablia username tersebut sama maka akan d cek kembali apakah password sama , jika password sama maka akan meregistrasi session disana terdapat script $this->_registerSession($tbluser) dimana script tersebut untuk mendaftarkan session. setelah itu ada script $this->response->redirect('home') script tersebut adalah script untuk meredirect ke controller home yang otomatis akan mengarah pada method index.
Berikut ini adalah method registerSession :
<?php private function _registerSession(TblUser $user) { $this->session->set('auth', array( 'isLog' => 'Y', 'id' => $user->id, 'username' => $user->username )); }
Setelah itu kita buat fungsi logout , berikut ini merupakan method logoutnya :
<?php public function logoutAction() { $this->session->destroy(); echo "Session sudah di destroy"; }
Sehingga isi dari LoginController.php :
<?php class LoginController extends Phalcon\Mvc\Controller { public function indexAction() { } private function _registerSession(TblUser $user) { $this->session->set('auth', array( 'isLog' => 'Y', 'id' => $user->id, 'username' => $user->username )); } public function prosesloginAction() { if ($this->request->isPost()) { $username = $this->request->getPost('username'); $password = $this->request->getPost('password'); $tbluser = TblUser::findFirst("username='$username'"); if ($tbluser) { if($password==$tbluser->password) { $this->_registerSession($tbluser); $this->response->redirect('home'); } } echo "Username atau password salah"; return $this->dispatcher->forward(array("action" => "index")); } } public function logoutAction() { $this->session->destroy(); echo "Session sudah di destroy"; } }
Setelah kita membuat LoginController selanjutnya kita buat controller Home , dimana controller ini yang dipanggil setelah login berhasil , berikut ini adalah isi dari HomeController.php.
HomeController.php :
<?php class HomeController extends Phalcon\Mvc\Controller { public function indexAction() { } }
selanjutnya kita buat view index.volt pada folder Home , sehingga isi dari index.volt yang berada pada folder Home/index.volt.
index.volt :
<html> <head> <title>Tutorial Login</title> </head> <body> <?php if ($this->session->has("auth")) { $auth = $this->session->get("auth"); $username=$auth['username']; echo "Hallo selamat datang $username "; ?> <br> <a href="{{ url('login/logout') }}">Logout</a> <?php } ?> </body> </html>
Setelah itu jalankan browser dan langsung eksekusi !!!
Download file lengkap di bawah ini :
Posting Komentar
3 Komentar
thx gan, membantu :D
BalasHapusGan ane input datanya ko ga ke simpan di database
BalasHapusGan ane input datanya ko ga ke simpan di database
BalasHapus