Konfirmasi password bertujuan untuk menghindari terjadinya kesalahan dalam penulisan password. Tidak jarang ketika mengisikan password pada form pendaftaran seperti pembuatan email kita akan diminta untuk memasukkan password sebanyak dua kali untuk konfirmasi kecocokan penulisan password.
Sebelumnya saya sudah pernah membuat ilustrasi penambahan user disertai username dan password untuk login ke sistem (klik di sini), hanya saja pada saat itu belum ada konfirmasi password. Baiklah, saya akan mencoba menambahkan konfirmasi password. Saya menggunakan usermodel yang sama seperti sebelumnya.
Sekenario yang saya gunakan :
"Ketika create dan update user di situ ada field password dan confirmpassword. Ketika create kedua field harus diisi (required), dan ketika update confirmpassword boleh kosong (password sama) atau masukkan password baru dan konfirmasi (confirmpassword harus diisi)."Langkah pertama buat attribute baru di dalam user model.
class User extends CActiveRecordkemudian definisikan rule
{
public $repeat_password;
.......
public function rules(){ketika mendefinisikan model on untuk fungsi create ('on'=>'create'), gunakan :
return array(
array('password','length', 'max'=>100),
array('repeat_password','compare',
'compareattribute'=>'password',
'message'=>'password do not match','on'=>'create'),
array('repeat_password','required','on'=>'create'),
.....
public function actionCreate()Kemudian tambahkan field confirmpassword di _form.php
{
$model=new User('create');
....
<div class="row">Mofidikasi action Update
<?php echo $form->labelEx($model,'repeat_password'); ?>
<?php echo $form->passwordField($model,'repeat_password',
array('size'=>30,'maxlength'=>100)); ?>
<?php echo $form->error($model,'repeat_password'); ?>
</div>
public function actionUpdate($id) {Dan berikut adalah tampilan ketika create dan update :
$model=$this->loadModel($id);
//mengambil nilai password
$password=$model->password;
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$pass='Helloword'.sha1($_POST['User']['password']);
$repeat='Helloword'.sha1($_POST['User']['repeat_password']);
if($password===$_POST['User']['password']){
$model->password=$password;
if($model->save())
$this->redirect(array('view','id'=>$model->id));
} else if($password!=$pass) {
if ($repeat===$pass){
$model->password=$pass;
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
else {
Yii::app()->user->setFlash('confirm','Konfirmasi password baru!');
}
}else {
$model->password=$pass;
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('update',array(
'model'=>$model,
));
}
Silahkan rubah dan pelajari script di atas..
Good Luck!


Belum ada tanggapan untuk "Yii: Confirm Password"
Posting Komentar