2014-09-26 104 views
-1

我想在將密碼插入數據庫之前更改要加密的密碼,但它不起作用。它說密碼很長。用Yii加密的密碼問題

public function actionCreate() { 
    $model = new Users; 

    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 

    if (isset($_POST['Users'])) { 
     $model->attributes = $_POST['Users']; 
     $password = $_POST['Users']['password']; 
     $model->password = md5($password); 
     if ($model->save()) 
      $this->redirect(array('view', 'id' => $model->id)); 
    } 

    $this->render('create', array(
     'model' => $model, 
    )); 
} 
+0

增加tabel中的密碼字段的大小以及用戶模型中的規則的大小也會增加該大小,以使您的模型驗證結果爲true。 – 2014-09-26 10:45:09

+0

您在模型類規則中使用的密碼長度是多少? – Athipatla 2014-09-26 11:14:28

+0

你的回答是正確的milz謝謝男人:) – 2014-09-26 11:36:19

回答

1

你使用什麼數據庫和數據類型..? 如果使用mysql,則可以使用char(32)或varchar(32)導致MD5加密出來的長度爲32個字符。

,照顧你的模型規則

public function rules() { 
    return array (
    array('password', 'length', 'max'=>20), 
    //length means your strings password that you entered can not more than 20 character 
    //but its not effect with password encrypted result 
    ); 
} 

可能是消息「的密碼是長」出現,因爲你的規則()驗證。

+0

問題是密碼的最大大小 – 2014-09-26 11:35:23