Sie sind auf Seite 1von 5

User Login dengan 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

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

memodifikasi menjadi seperti ini

$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

(yiiroot\demos\blog\protected\data\schema.mysql) Maka Login sudah berhasil!..

Das könnte Ihnen auch gefallen