[ASK] Seputar form register / aktivasi dan Login

Halo para master yii, saya mau bertanya seputar membuat form register.

Form register sudah terbuat dan sudah bisa masuk ke mysql, cuman ada sedikit masalah.

-Masalah pertama adalah bagaimana agar actionCreate() ke redirect setelah aktivasi dan data masuk ke dalam database seperti misal redirect halaman terimakasih dsb tidak ke halaman view 6537

t1.png
.

-Masalah kedua adalah sewaktu input nomer hp 085… sebanyak 12 digit hasilnya seperti gambar diatas padahal di dbnya udah diset panjang nilainya 25 dan jenisnya int

-Masalah ketiga sewaktu input tanggal lahir yang kebetulan sama dan muncul eror 6538

eror.png
dan saya menggunakan datepicker berikut penampakan script pada _form untuk register


<div class="row">

		<?php echo $form->labelEx($model,'Tanggal Lahir');

$this->widget('zii.widgets.jui.CJuiDatePicker',array(

'attribute'=>'Tanggal',

    'name'=>'datepicker-date-format',    

	'value'=>$model->Tanggal,

'model'=>$model,

    'value'=>date('d/m/Y'),

    'options'=>array(        

        'showButtonPanel'=>true,

        'dateFormat'=>'yy-mm-dd',//Date format 'mm/dd/yy','yy-mm-dd','d M, y','d MM, y','DD, d MM, yy'

    ),

    'htmlOptions'=>array(

        'style'=>''

    ),

));

?>

		<?php echo $form->error($model,'Tanggal'); ?>

	</div>

-Masalah ke empat accessRule() seperti ini


	public function accessRules()

	{

		return array(

			array('allow',  // allow all users to perform 'create' and 'captcha' actions

				'actions'=>array('create','captcha'),

				'users'=>array('*'),

			),

			array('allow', // allow authenticated user to perform 'update' and 'view' actions

				'actions'=>array('update','view'),

				'users'=>array('@'),

			),

			array('allow', // allow admin user to perform 'admin' and 'delete' actions

				'actions'=>array('admin','index', 'delete'),

				'users'=>array('admin'),

			),

			array('deny',  // deny all users

				'users'=>array('@'),

			),

		);

	}

sudah benar belum. Misalnya halaman register bisa diakses semua pengguna tanpa login, halaman view dan update hanya bisa ketika login pada user yang bersangkutan dan halaman delete hanya admin?

-Masalah kelima bagaimana mengatasi 6540

t2.png
dimana hasil input gak terhapus

-Masalah ke enam bagaimana login dengan database, pada dasarnya file apa saja yang akan dimodifikasi? Dan bagaimana tutorialnya?

Mohon pencerahannya. Maaf newbie banyak bertanya, mudah"an solved dan menambah ilmu. Terimakasih

Coba jawab ya,

NOmor 1.

  • bikin action satu lagi (misal actionTerimakasih),

  • trus di actionCreate-nya yg redirect ke view


$this->redirect(array('view','id'=>$model->id));

, dialikan ke action yang dibuat tadi


$this->redirect(array('terimakasih','id'=>$model->id));

~ happy coding

Nomor 2, coba di model-nya liat length di function rules nya, masih terisi 12 mungkin.

~ happy coding

Nomor 3, itu di model-nya seperti no 2, tanggal dibikin unique. kalo ngisinya


array('nama, tanggal', 'unique'),

maka nama dan tanggal masing2x ga boleh dobel.

~happy coding

Nomor 4 , register (actionCreate) sudah betul, cuma yang update dan view kalo rulesnya seperti itu, semua user bisa update/view, user A bisa update user B.

~happy coding

Nomor 5 , itu tambahin aja autocomplete="off"


<?php echo $form->textField($model, 'nama', array('autocomplete'=>"off")); ?>

~happy coding

NOmor 6,

tinggal dirubah aja di UserIdentity ( di folder component)




public function authenticate()

	{


		$username=strtolower($this->username);

		$user=User::model()->find('LOWER(iduser)=?',array($username));	#asumsi nama model nya User.					

			

		if($user===null)

		    $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->iduser;

		    $this->errorCode=self::ERROR_NONE;

		}

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

	}



user yang tadinya ngambil dari array, diganti ngambil ke database.

Semoga membantu.

~ happy coding

Maaf yang ini belum solved, kalau di bikin unique pasti data yang di input harus berbeda karena ini untuk kolom tanggal lahir ga mungkin data yang sama harus di ganti, maksudnya biar data yang sama bisa banyak di input, tapi justru muncul eror seperti itu.

Ini fungsi rules register yang saya buat :




public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

			array('Nama, NPM, Tanggal, Username, Password, NomerHP', 'required'),

			array('NomerHP', 'numerical', 'integerOnly'=>true),

			array('NomerHP', 'length', 'max'=>25, 'min'=>12),

			array('NPM', 'length', 'max'=>10, 'min'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />,

			array('Nama', 'length', 'max'=>25),

			array('Username, Password', 'length', 'max'=>25, 'min'=>5),

			array('Username, NPM', 'unique', 'message' => ("Data yang di input sudah ada")),

			// The following rule is used by search().

			// @todo Please remove those attributes that should not be searched.

			array('id, Nama, NPM, Tanggal, Username, Password, NomerHP', 'safe', 'on'=>'search'),

		);

	}



Jawaban nomor 1,2,4 solved 5,6 masih di coba

Terimakasih bantuannya mas…