Tutorial Zend bagian 5 Wirawan Prasetyo
[email protected] http://www.wirawanprasetyo.web.id
Lisensi Dokumen: Copyright © 2003-2007 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
5. Membuat halaman login 5.1. Hasil akhir Hasil akhir yang akan didapat adalah perubahan pada halaman edit. Disini link edit hanya muncul jika user sudah login. Dan muncul pesan “Selamat datang xxx”.
5.2.Contekan Di halaman list dan login user akan di validasi apakah sudah login atau belum.
5.3.Kisi-Kisi Klas-klas tambahan yang akan digunakan : •
Zend_Auth Dinakan untuk proses autentifikasi
5.4.Membuat authController #Root\application\controllers\ AuthController.php
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
1
{ function init() { $this->initView(); $this->view->baseUrl = $this->_request>getBaseUrl(); Zend_Loader::loadClass('User');
$auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) {
$this->view->nama =Zend_Auth::getInstance()->getIdentity()->username; $this->view->status="Logout"; } else { $this->view->nama = "Guest"; $this->view->status="Login"; }
}
function loginAction() { if ($this->_request->isPost()) { // collect the data from the user Zend_Loader::loadClass('Zend_Filter_StripTags'); $f = new Zend_Filter_StripTags();
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
2
$username = $f->filter($this>_request->getPost('txtNama')); $password = $f->filter($this>_request->getPost('txtPass'));
if (empty($username)) { $this->view->message = ' Masukkan username.'; } else {
// setup Zend_Auth adapter for a database table Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable'); $dbAdapter = Zend_Registry::get('dbAdapter'); $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); $authAdapter>setTableName('User'); $authAdapter>setIdentityColumn('username'); $authAdapter>setCredentialColumn('userpassword');
// Set the input credential values to authenticate against $authAdapter>setIdentity($username); $authAdapter>setCredential(md5($password));
// do the authentication $auth = Zend_Auth::getInstance();
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
3
$result = $auth>authenticate($authAdapter);
if ($result->isValid()) { // success: store database row to auth's storage // system. (Not the password though!) $data = $authAdapter>getResultRowObject(null,'password'); $auth->getStorage()>write($data); $this->view->message = 'Anda sudah login'; $this->view>status="Logout"; $this>_redirect('auth/login'); } else { // failure: clear database row from session $this->view->message = 'Login failed.'; $this->view>status="Login"; } } } }
function logoutAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) {
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
4
Zend_Auth::getInstance()->clearIdentity(); } $this->_redirect('/auth/login'); } }
Penjelasan •
Fungsi init o
•
•
Ketika user sudah berhasil login, maka akan langsung diredirect ke halaman ini. Jika sudah login “ if ($auth>hasIdentity()) { ”maka ditampilkan nama user “$this->view->nama”. Jika belum maka tetap guest.
loginAction o
Ketika user login maka akan mengirim request dan data login dari form
o
“Zend_Loader::loadClass('Zend_Auth_Adapter_DbT able');” memanggil class yg berhubungan dengan konfigurasi untuk berhubungan dengan db
o
“ $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); “ berguna untuk membuka hubungan dengan db menggunakan konfigurasi diatas untuk Autentifikasi
o
“ $authAdapter->setTableName('User'); “ menentukan nama db untuk autentifikasi(model )
o
“$authAdapter->setIdentityColumn('username');” menetukan nama table
o
“$auth = Zend_Auth::getInstance(); “ melakukan validasi ke database
o
“$result = $auth->authenticate($authAdapter);” menyimpan hasil
logoutAction o
Jika user sudah login, maka menghapus data.
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
5
5.5.Halaman login # Root\application\view\script\auth\login.phtml render('header.phtml'); ?>
Masukkan data anda :
message; ?>
hasIdentity()) { ?> Anda sudah login
render('footer.phtml'); ?> Penjelasan : •
Ketika user menekan link login maka akan di cek sudah login belum, jika sdh mk muncul pesan sudah login, jika belum tampil pesan.
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
6
5.6.Halaman logout # Root\application\view\script\auth\logout.phtml Halaman ini tidak ada isinya, karena di controller setelah logout langsung di redirect ke halaman login. Tetapi jika tidak dibuat, akan muncul pesan error.
5.7.Mengubah tampilan list # Root\application\view\script\index\list.phtml Ubah baris :
baseUrl; ?>/index/edit/id/id;?>">Edit | baseUrl; ?>/index/delete/id/id;?>">Delete | Menjadi : hasIdentity()) { ?>
baseUrl; ?>/index/edit/id/id;?>">Edit |
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
7
baseUrl; ?>/index/delete/id/id;?>">Delete | | | Penjelasan : •
Pada script awal (tutial bagian 4), tombol edit akan selalu muncul, namun sekarang diubah hanya bg yg sudah login
5.8.Mengubah header # Root\application\view\script\header.phtml
baseUrl;?>/index/register">Register ::
linkUrl; ?>">linkName; ?> :: Mengubah :
baseUrl;?>/index/register">Register ::
baseUrl;?>/auth/status; ?>">status; ?> ::
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
8
Selamat datang, nama; ?> Penjelasan : •
Kita hanya menambah url ke halaman login saja
Biografi Penulis Wirawan Prasetyo (Wawan) lahir pada bulan Desember tahun 1984. Menyelesaikan S1 di Universitas Bina Nusantara, Jakarta jurusan Teknik Informatika pada tahun 2007. Saat ini berkerja di sebuah media hukum online ( www.hukumonline.com ) sebagai programmer. http://www.wirawanprasetyo.web.id
Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com
9