嗨我正在與數據庫進行身份驗證我有問題,如果電子郵件地址的格式不正確,同一頁面會返回給頁面上有錯誤的用戶。問題是密碼仍然被散列並被添加到返回的表單中。Yii用戶註冊返回散列密碼給用戶一個錯誤?
我控制器:: actionRegister():
$model = new User('register');
if (isset($_POST['User']))
{
$model->attributes = $_POST['User'];
$model->password = crypt($model->password, $model->blowfishSalt());
if ($model->save())
{
$this->redirect(Yii::app()->user->returnUrl);
}
}
$this->render('register', array('model'=>$model));
我的觀點:register.php
<div class="row">
<?php echo $form->labelEx($model,'email'); ?>
<?php echo $form->textField($model,'email'); ?>
<?php echo $form->error($model,'email'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Submit'); ?>
</div>
我怎樣才能確保使用 '註冊' 情景密碼不會返回表單和/或密碼不會被散列,直到所有其他錯誤消失。由於散列需要一些時間?
您可以在模型中定義notHashedPassword財產,並在beforeSave()方法做類似'$ this-> password = crypt($ model-> notHashedPassword,$ model-> blowfishSalt());' http://www.yiiframework.com/wiki/277/model-密碼確認場 – lysenkobv