SlideShare a Scribd company logo
Tutorial Zend bagian 5Tutorial Zend bagian 5
Wirawan Prasetyo
Bestfriends_wp@yahoo.com
http://www.wirawanprasetyo.web.id
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
#Rootapplicationcontrollers AuthController.php
<?php
class AuthController extends Zend_Controller_Action
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
1
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.
{
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
# Rootapplicationviewscriptauthlogin.phtml
<?php echo $this->render('header.phtml'); ?>
Masukkan data anda :<br>
<?php echo $this->message; ?><br>
<?php
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
?>
Anda sudah login
<?
} else {
?>
<form method="post">
Masukkan nama kamu : <input type="text"
name="txtNama" value=" "><br>
Masukkan password kamu : <input type="text"
name="txtPass" value=" ">
<input type="submit" value="Masuk">
</form>
<?
}
?>
<?php echo $this->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
# Rootapplicationviewscriptauthlogout.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
# Rootapplicationviewscriptindexlist.phtml
Ubah baris :
<td>
<a href="<?php echo $this->baseUrl; ?>/index/edit/id/<?php
echo $baris->id;?>">Edit</a></td>
<td>
<a href="<?php echo $this->baseUrl; ?>/index/delete/id/<?php
echo $baris->id;?>">Delete</a>
</td>
Menjadi :
<?
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
?>
<td>
<a href="<?php echo $this->baseUrl; ?>/index/edit/id/<?php echo
$baris->id;?>">Edit</a></td>
<td>
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
7
<a href="<?php echo $this->baseUrl; ?>/index/delete/id/<?php
echo $baris->id;?>">Delete</a>
</td>
<?
} else {
?>
<td>&nbsp;</td><td>&nbsp;</td>
<?
}
?>
Penjelasan :
• Pada script awal (tutial bagian 4), tombol edit akan selalu
muncul, namun sekarang diubah hanya bg yg sudah login
5.8.Mengubah header
# Rootapplicationviewscriptheader.phtml
<a href="<?php echo $this-
>baseUrl;?>/index/register">Register</a> ::
<a href="<?php echo $this->linkUrl; ?>"><?php echo $this-
>linkName; ?></a> ::
Mengubah :
<a href="<?php echo $this-
>baseUrl;?>/index/register">Register</a> ::
<a href="<?php echo $this->baseUrl;?>/auth/<?php echo $this-
>status; ?>"><?php echo $this->status; ?></a> ::
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
8
Selamat datang, <?php echo $this->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

More Related Content

DOCX
Script login form php
ODP
Mengamankan Aplikasi Java EE 6
PDF
Login php mysql
ODP
Mengamankan Aplikasi Java EE 6
ODP
Mengamankan Aplikasi Java EE 6
PDF
Bongkar rahasia php
DOC
09071003002 session dan fungsinya
DOC
Tugas session (hanni si6 b-40)
Script login form php
Mengamankan Aplikasi Java EE 6
Login php mysql
Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6
Bongkar rahasia php
09071003002 session dan fungsinya
Tugas session (hanni si6 b-40)

Similar to Wawan tutorial-zend-bagian-5 (20)

PDF
Tutorial crud PHP
PDF
test saja kok
PDF
Login dengan-session
DOCX
Membuat form login dengan php mysql
PDF
Wawan tutorial-zend-bagian-4
PDF
Php CMS tutorial
PDF
Php tutorial-17
DOCX
user.docx
PPTX
frarewrewrewrewdffrfdsfdfdsffmework7.pptx
PDF
Belajar Android PHP MySQL Login dengan Volley
PPTX
Form validation dengan code igniter
PDF
Modul pembuatan aplikasi login dengan php dan my sq lx
PDF
Modul pembuatan aplikasi login dengan php dan my sq lx
PDF
11 aplikasi teknologi online - session dan aplikasinya
PDF
FreeBSD web-based MUA
PDF
Jamal aplikasicrud
PDF
Belajar php 2015
PPTX
framewfdsfdfdsfdsfdsfdsfdsfdsfdsfork3.pptx
DOCX
Modul framework code igniter
DOC
Contoh Session By Tugas Session Hanni
Tutorial crud PHP
test saja kok
Login dengan-session
Membuat form login dengan php mysql
Wawan tutorial-zend-bagian-4
Php CMS tutorial
Php tutorial-17
user.docx
frarewrewrewrewdffrfdsfdfdsffmework7.pptx
Belajar Android PHP MySQL Login dengan Volley
Form validation dengan code igniter
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
11 aplikasi teknologi online - session dan aplikasinya
FreeBSD web-based MUA
Jamal aplikasicrud
Belajar php 2015
framewfdsfdfdsfdsfdsfdsfdsfdsfdsfork3.pptx
Modul framework code igniter
Contoh Session By Tugas Session Hanni
Ad

More from Haswi Haswi (20)

PDF
Wawan tutorial-zend-bagian-1-3
PDF
Tutorial mysql
PDF
Tutorial php
PDF
Query php
PDF
Php gtk
PDF
Php form register
PDF
Php dgn frame work code ignitier
PDF
Php & mysql pundamental
PDF
Penggunaan xampp
PDF
Pengantar mysql
PDF
Peer to peer dan client server
PDF
Panduan biarkan php-mengabadikannya!
PDF
Modul html
PDF
Masuun ajarmysql5-2
PDF
Manipulasi database mysql dgn php
PDF
Instalshield
PDF
Html dasar
PDF
Html dan php
PDF
Gambar php
PDF
Frameworkoop2
Wawan tutorial-zend-bagian-1-3
Tutorial mysql
Tutorial php
Query php
Php gtk
Php form register
Php dgn frame work code ignitier
Php & mysql pundamental
Penggunaan xampp
Pengantar mysql
Peer to peer dan client server
Panduan biarkan php-mengabadikannya!
Modul html
Masuun ajarmysql5-2
Manipulasi database mysql dgn php
Instalshield
Html dasar
Html dan php
Gambar php
Frameworkoop2
Ad

Wawan tutorial-zend-bagian-5

  • 1. Tutorial Zend bagian 5Tutorial Zend bagian 5 Wirawan Prasetyo Bestfriends_wp@yahoo.com http://www.wirawanprasetyo.web.id 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 #Rootapplicationcontrollers AuthController.php <?php class AuthController extends Zend_Controller_Action Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 1 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.
  • 2. { 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
  • 3. $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
  • 4. $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
  • 5. 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
  • 6. 5.5.Halaman login # Rootapplicationviewscriptauthlogin.phtml <?php echo $this->render('header.phtml'); ?> Masukkan data anda :<br> <?php echo $this->message; ?><br> <?php $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { ?> Anda sudah login <? } else { ?> <form method="post"> Masukkan nama kamu : <input type="text" name="txtNama" value=" "><br> Masukkan password kamu : <input type="text" name="txtPass" value=" "> <input type="submit" value="Masuk"> </form> <? } ?> <?php echo $this->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
  • 7. 5.6.Halaman logout # Rootapplicationviewscriptauthlogout.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 # Rootapplicationviewscriptindexlist.phtml Ubah baris : <td> <a href="<?php echo $this->baseUrl; ?>/index/edit/id/<?php echo $baris->id;?>">Edit</a></td> <td> <a href="<?php echo $this->baseUrl; ?>/index/delete/id/<?php echo $baris->id;?>">Delete</a> </td> Menjadi : <? $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { ?> <td> <a href="<?php echo $this->baseUrl; ?>/index/edit/id/<?php echo $baris->id;?>">Edit</a></td> <td> Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 7
  • 8. <a href="<?php echo $this->baseUrl; ?>/index/delete/id/<?php echo $baris->id;?>">Delete</a> </td> <? } else { ?> <td>&nbsp;</td><td>&nbsp;</td> <? } ?> Penjelasan : • Pada script awal (tutial bagian 4), tombol edit akan selalu muncul, namun sekarang diubah hanya bg yg sudah login 5.8.Mengubah header # Rootapplicationviewscriptheader.phtml <a href="<?php echo $this- >baseUrl;?>/index/register">Register</a> :: <a href="<?php echo $this->linkUrl; ?>"><?php echo $this- >linkName; ?></a> :: Mengubah : <a href="<?php echo $this- >baseUrl;?>/index/register">Register</a> :: <a href="<?php echo $this->baseUrl;?>/auth/<?php echo $this- >status; ?>"><?php echo $this->status; ?></a> :: Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 8
  • 9. Selamat datang, <?php echo $this->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