2012-06-29 85 views
0

我的Kohana視圖文件看起來像:的Kohana 3.1驗證,密碼字段不會產生錯誤

<?=Form::open('/signup/user');?> 
    <?=Form::label('username', 'Username: ')?> 
    <?=Form::input('username', isset($username)?$username:''); ?> 
    <br /> 
    <?=Form::label('password', 'Password: ')?> 
    <?=Form::password('password', ''); ?> 
    <br /> 
    <?=Form::label('confirm', 'Re-enter Password: ')?> 
    <?=Form::password('confirm', ''); ?> 
    <br /> 
    <?=Form::label('email', 'Email: ')?> 
    <?=Form::input('email', ''); ?> 
    <?=Form::submit('submit', "Submit"); ?> 
<?=Form::close()?> 

而且我的控制器:

public function action_user(){ 
    if($this->request->method() == "POST"){ 
     $this->template->set('username', $this->request->post('username')); 
     $user = ORM::factory('user'); 
     try{ 
      $user->values($_POST)->save(); 
     }catch(ORM_Validation_Exception $e){ 
      var_dump($e->errors()); 
     } 
    } 
} 

的問題是,後者將接受空表單密碼或不匹配的密碼並將其寫入數據庫。用戶名和電子郵件字段驗證工作正常,但我不知道如何驗證密碼字段。

+0

你可以發佈你的用戶模型,我們需要看到您所定義的驗證。 – ashryalls

+0

我還沒有定義任何。 Kohana Auth是關於什麼的(我想)。我的意思是'Model_Auth_User'擁有所有的驗證規則,所以我不擔心像登錄/註冊一般形式。 – Shubham

+0

那麼,如果你能在那麼Model_auth_user驗證不檢查是把一個空密碼,您的用戶模型可能擴展model_auth_user? 如果是這樣,你不要有從AUTH_USER足夠的驗證,然後就在你自己的用戶模型中定義它們。 – ashryalls

回答

0

艾,得到了錯誤。在閱讀Model_Auth_User的文檔後,我在規則()方法中得到了這個:

用戶模型的規則。 因爲密碼是總是當它設置爲 時,你需要在你的 控制器中運行一個額外的not_empty規則,以確保你沒有散列一個空字符串。密碼 規則應在模型之外或與模型助手 方法執行。

哈希一個空字符串也返回哈希是不是空。所以需要在模型之外進行檢查,更具體地說,在控制器端進行檢查。

相關問題