Total Tayangan Halaman

Rabu, 29 Juni 2011

#5 Autentikasi Login Zend Framework: Membuat web-aplikasi menggunakan Zend Framework

#5 Autentikasi Login Zend Framework: Membuat web-aplikasi menggunakan Zend Framework

Sebelumnya, kita pernah membuat an mengenal Session di PHP, Pembuatan Struktur table untuk Login, Membuat Form Login pada Zend Framework.

Sekarang kita akan coba untuk menggabungkan ketiga nya, dimana session akan menggunakan cara nya Zend Framework.

Pertama, buka file /application/config.php kemudian tambahkan script berikut :

;Session Setting
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary.session_id = "session_id"
resources.session.saveHandler.options.primary.save_path = "save_path"
resources.session.saveHandler.options.primary.name = "name"
resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"

Sebelum nya pada form login.php, terdapat sintak berikut :

class Application_Form_Login extends Zend_Form{
public function init()
{
// Set the method for the display form to POST
$this->setMethod('post');
$this->setAction('http://localhost/pos/Login');
.....
...

pada script $this->setAction(‘http://localhost/pos/Login’); , manandakan bahkan Login adalah Controller yang akan kita tuju, dimana action yang akan dieksekusi adalah indexAction. Sehingga kita buat Sebuah Controller.

/Application/Controller/LoginController.php, kemudian buat script seperti berikut :

class LoginController extends Zend_Controller_Action {
private $session_namespace = "pos";
public function init(){
//$this->_helper->layout->disableLayout();
}
public function indexAction()
{
$user = $this->getRequest()->getParam("username");
$pass = $this->getRequest()->getParam("password");
$data = array('username'=>$user,'password'=>$pass);
$oUser = new Application_Model_vwuser($this->db);
$oUser->_sqlAndStatement($data);
$rowset = $oUser->_sqlFetchData();
if (count($rowset) > 0){
$session = New Zend_Session_Namespace($this->session_namespace);
foreach($rowset as $r){
$session->__set('logon', 'true');
$session->__set('kodeuser', $r->cd);
$session->__set('username', $r->username);
$session->__set('password', md5($r->password));
$session->__set('upassword', $r->password);
$session->__set('idkelompokuser', $r->idkelompokuser);
$session->__set('namakelompokuser', $r->nama);
}
$this->_redirect('/?login=success');
}else{
$this->_redirect('/?err=login');
}
}
}

Penjelasan :
saat kita memasukan nama user dan password pada teks Box Login. Variabel yang dilemparkan adalah username dan password, disini kita lihat perbedaan, dimana biasanya kita menangkap sebuah variabel dengan cara :

$a = $_POST["variable"];
// atau
$a = $_GET["variable"];
// atau
$a = $_REQUEST["variable"];

namun pada Zend kita menggunakan

$user = $this->getRequest()->getParam("username");
$pass = $this->getRequest()->getParam("password");

kemudian variable tersebut dilemparkan ke Model vwuser (untuk pembuatan model dapat dilihat disini)

Script dibawah ini kita memasukan variable kedalam array yang nantinya akan dipisahkan didalam model sebagai kriteria pemilihan data.

$data = array('username'=>$user,'password'=>$pass);

Model sendiri dibentuk dengan membuat Class pada php, sehingga kita perlu meng-instan Class tersebut agar menjadi object dan menggunakan menthod yang ada didalamnya

$oUser = new Application_Model_vwuser($this->db);

Script ini sebetulnya membentuk sintak :
“Select * FROM WHERE (data[0] AND data[1])”

$oUser->_sqlAndStatement($data);

Kemudian kita eksekusi dan menampungnya didalam sebuah array.

$rowset = $oUser->_sqlFetchData();

Hasil dari $oUser->_sqlFetchData(); adalah sebuah array yang memiliki nilai didalamnya.
Logika sederhana untuk login ini adalah sebagai berikut :
IF username = true AND password = TRUE, result = TRUE, berarti terdapat data yang memenuhi keriteria tersebut. tetapi kita memanfaatkan fungsi count($array[]) milik php, berhubung data yang dihasilkan berupa array.

if (count($rowset) > 0){

maksudnya, jika jumlah data lebih dari 0 (Nol), kita daftarkan ke session kemudian melemparkan halaman utama ke dengan cara

$session = New Zend_Session_Namespace($this->session_namespace);
foreach($rowset as $r){
$session->__set('logon', 'true');
$session->__set('kodeuser', $r->cd);
$session->__set('username', $r->username);
$session->__set('password', md5($r->password));
$session->__set('upassword', $r->password);
$session->__set('idkelompokuser', $r->idkelompokuser);
$session->__set('namakelompokuser', $r->nama);
}
$this->_redirect('/?login=success');

method yang sering digunakan secara sederhana dalam penggunaan session adalah:

$session->__set(, ); //untuk menyimpan session
$var = $session->__get(, ); //untuk mendapatkan session

Sampai disini selesai lah tugas kita untuk membuat Login dalam Zend Framework.

Selasa, 28 Juni 2011

#15 What good books have you read lately? (Answer an Interview Questions)

#15 What good books have you read lately? (Answer an Interview Questions)

TRAPS: As in all matters of your interview, never fake familiarity you don’t have. Yet you don’t want to seem like a dullard who hasn’t read a book since Tom Sawyer.

BEST ANSWER: Unless you’re up for a position in academia or as book critic for The New York Times, you’re not expected to be a literary lion. But it wouldn’t hurt to have read a handful of the most recent and influential books in your profession and on management.

Consider it part of the work of your job search to read up on a few of these leading books. But make sure they are quality books that reflect favorably upon you, nothing that could even remotely be considered superficial. Finally, add a recently published bestselling work of fiction by a world-class author and you’ll pass this question with flying colors.

#14 Tell me honestly about the strong points and weak points of your boss (company, management team, etc.) (Answer an Interview Questions)

#14 Tell me honestly about the strong points and weak points of your boss (company, management team, etc.) (Answer an Interview Questions)

TRAPS: Skillful interviewers sometimes make it almost irresistible to open up and air a little dirty laundry from your previous position. DON’T

BEST ANSWER: Remember the rule: Never be negative. Stress only the good points, no matter how charmingly you’re invited to be critical.

Your interviewer doesn’t care a whit about your previous boss. He wants to find out how loyal and positive you are, and whether you’ll criticize him behind his back if pressed to do so by someone in this own company. This question is your opportunity to demonstrate your loyalty to those you work with.