Telah berhari-hari saya memahami framework yii, tiba akhirnya sedikit-sedikit memahami dasar dari yii framework. Saat ini saya mencoba membuat login dengan yii, kuncinya anda harus memahami terebih dahulu mengenai GII yang dasarannya yaitu CRUD. Jika sudah silahkan ikuti langkah-langkah berikut :
- Buat Database user
- Gantii userIdentity
- update model
- update Controller
Buat database
silakan copy paste sql ini ke dalam database anda.
setelah di copy. silakan buka protected/config/main.php dan aktifkan database Mysql dan stopkan sqllite.
CREATE TABLE IF NOT EXISTS `User` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(250) NOT NULL,
`email` varchar(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
setelah di copy. silakan buka protected/config/main.php dan aktifkan database Mysql dan stopkan sqllite.
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=databaseygdigunakan',
'emulatePrepare' => true,
'username' => 'user',
'password' => 'passwordnyauser',
'charset' => 'utf8',
),
Setelah database terkoneksi lakukan generate tabel User tersebut dengan menggunakan Gii.
Ganti Useridentity
Ubah Class UserIdentity (protected/components/UserIdentity.php) agar
mengambil username dan mengautentikasi password menggunakan database
yang ada, ingat hapus isi dari public function authenticate() dan isi
sehingga menjadi:
$record=User::model()->findByAttributes(array('username'=>$this->username));
if($record===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($record->password!==md5($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$record->id;
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
Update model (user.php)
tambahkan fungsi bantuan sederhana di class User (protected/models/User.php) letakan pada bagian paling bawah.
Update controller (userController)
Kemudian agar proses create maupun Update user bisa langsung menyimpan password dalam bentuk terenkripsi (md5), ubah/tambahkan beberapa kondisi di controller User (protected/controller/UserController.php), terutama untuk function actionCreate dan function actionUpdate tambahkan :
di fungsi create maupun update sehingga menjadi
{
return $this->_id;
}
Update model (user.php)
tambahkan fungsi bantuan sederhana di class User (protected/models/User.php) letakan pada bagian paling bawah.
public function hashPassword($phrase){
return hash('md5', $phrase);
}
Update controller (userController)
Kemudian agar proses create maupun Update user bisa langsung menyimpan password dalam bentuk terenkripsi (md5), ubah/tambahkan beberapa kondisi di controller User (protected/controller/UserController.php), terutama untuk function actionCreate dan function actionUpdate tambahkan :
$model->password = $model->hashPassword($_POST['User']['password']);
di fungsi create maupun update sehingga menjadi
.....
$model->attributes=$_POST['User'];
$model->password = $model->hashPassword($_POST['User']['password']);
if($model->save())
.....
….
Selesai dan semoga dapat membantu serta bermanfaat bagi kita semua.
Tidak ada komentar:
Posting Komentar