131387398 user login yii framework mysql

5
Pertama tama ini adalah catetan untuk sendiri, jadi banyak yang ga terlalu detail. Kalau ada yang kurang jelas/pertanyaan silahkan tuliskan komentar, siapa tau saya bisa menjawab. Oke, saya sudah membaca tutorial membuat blog pada Yii Framework baru sampai halaman 18 Authenticating User (file pdf nya yii-blog-1.1.0 gratis dari website yii framework), dan menggunakan Yii Framework versi 1.1.10 yang keluaran Feb 12, 2012. Xampp Control versi 2.6 Setelah membuat aplikasi blog, dan membuat database pada mysql yang sudah tersedia pada blog demo ( yiiroot\demos\blog\protected\data\schema.mysql ) dan sudah menyeting MySQL database di file main.php ( webroot\blog\protected\config\main.php ) Dan sudah membuat model dari table table pada database. Membuat CRUD table Post dan Comment. % /wwwroot/yii/framework/yiic shell /wwwroot/blog/index.php Yii Interactive Tool v1.1 Please type 'help' for help. Type 'exit' to quit. >> model * ...... >> crud Post ...... >> crud Comment ...... >> exit User Login dengan Yii Framework Mysql

Upload: milos-stojanovic

Post on 23-Oct-2015

16 views

Category:

Documents


1 download

DESCRIPTION

yii

TRANSCRIPT

Page 1: 131387398 User Login Yii Framework Mysql

Pertama tama ini adalah catetan untuk sendiri, jadi banyak yang ga terlalu detail. Kalau ada yang

kurang jelas/pertanyaan silahkan tuliskan komentar, siapa tau saya bisa menjawab.

Oke, saya sudah membaca tutorial membuat blog pada Yii Framework baru sampai halaman 18

Authenticating User (file pdf nya yii-blog-1.1.0 gratis dari website yii framework), dan

menggunakan Yii Framework versi 1.1.10 yang keluaran Feb 12, 2012. Xampp Control versi 2.6

Setelah membuat aplikasi blog, dan membuat database pada mysql yang sudah tersedia pada

blog demo ( yiiroot\demos\blog\protected\data\schema.mysql ) dan sudah menyeting MySQL

database di file main.php ( webroot\blog\protected\config\main.php )

Dan sudah membuat model dari table table pada database. Membuat CRUD table Post dan

Comment.

% /wwwroot/yii/framework/yiic shell /wwwroot/blog/index.php

Yii Interactive Tool v1.1

Please type 'help' for help. Type 'exit' to quit.

>> model *

......

>> crud Post

......

>> crud Comment

......

>> exit

User Login dengan Yii Framework Mysql

Page 2: 131387398 User Login Yii Framework Mysql

Dan sudah menjalankan contoh link.

http://www.example.com/blog/index.php?r=post

http://www.example.com/blog/index.php?r=comment

// pokok nya sudah menjalankan semua yg ada diatas, beres dan berhasil

Maka saya akan melakukan Authenticating User, login menggunakan user pada database yang

menggunakan password hashPassword (password yang di enkrip md5)

Pertama-tama membuka file /wwwroot/blog/protected/components/UserIdentity.php dan

memodifikasi menjadi seperti ini

<?php

/**

* UserIdentity represents the data needed to identity a user.

* It contains the authentication method that checks if the provided

* data can identity the user.

*/

class UserIdentity extends CUserIdentity

{

private $_id;

/**

* Authenticates a user.

* @return boolean whether authentication succeeds.

*/

public function authenticate()

{

$user=NamaTableUser::model()->find('LOWER(username)=?',array(strtolower($this-

>username)));

if($user===null)

Page 3: 131387398 User Login Yii Framework Mysql

$this->errorCode=self::ERROR_USERNAME_INVALID;

else if(!$user->validatePassword($this->password))

$this->errorCode=self::ERROR_PASSWORD_INVALID;

else

{

$this->_id=$user->id;

$this->username=$user->username;

$this->errorCode=self::ERROR_NONE;

}

return $this->errorCode==self::ERROR_NONE;

}

/**

* @return integer the ID of the user record

*/

public function getId()

{

return $this->_id;

}

}

Perlu diperhatikan pada kode baris 18 NamaTableUser adalah nama dari model ( code

NamaTableUser::model ) pada table user (

/wwwroot/blog/protected/models/NamaTableUser.php ) jangan sampai salah memasukan nama.

Jika mengetest login dengan dengan sembarangan ( username dan password ) maka tidak terjadi

apa-apa atau pesan erorr Yii tidak muncul ( kok tulisan nya rada geje ya? ).

Jika mengetest login dengan benar ( username dan password ) maka pesan error Yii akan muncul

(tanda tanda berhasil). Dikarenakan belum mengubah file NamaTableUser.php (

Page 4: 131387398 User Login Yii Framework Mysql

/wwwroot/blog/protected/models/

NamaTableUser.php ) Maka akan muncul pesan error Yii seperti ini pada browser.

NamaTableUser and its behaviors do not have a method or closure named "validatePassword".

Maka perlu menambahkan kode pada NamaTableUser.php /wwwroot/blog/protected/models/

NamaTableUser.php)

class User extends CActiveRecord

{

......

public function validatePassword($password)

{

return $this->hashPassword($password,$this->salt)===$this->password;

}

public function hashPassword($password,$salt)

{

return md5($salt.$password);

}

......

}

Jika kita salah memasukan nama table pada file UserIdentity.php , dengan sengaja saya

memasukan TestTableUser ( percobaan ) pada file UserIdentity.php (

/wwwroot/blog/protected/components/UserIdentity.php ) maka pesan error Yii akan muncul

seperti ini pada browser (pesan diatas baris pertama)

include(TestTableUser.php) [<a href='function.include'>function.include</a>]: failed to open

stream: No such file or directory

Jika semua sudah benar dijalankan. Pada saat ini saya menggunakan username demo dan

password demo sesuai dengan table yang sudah ada pada MySQL database di file schema.mysql

Page 5: 131387398 User Login Yii Framework Mysql

(yiiroot\demos\blog\protected\data\schema.mysql)

Maka Login sudah berhasil!..