Beruflich Dokumente
Kultur Dokumente
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
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 Pertama-tama <?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) password membuka hashPassword file (password yang di enkrip md5) dan
/wwwroot/blog/protected/components/UserIdentity.php
$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 (
/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