2011-08-21 107 views
0

我已經添加下面的驗證,以我的用戶模型:登錄表單驗證

class User extends AppModel 
{ 
    var $useTable = 'users'; 

    var $validate = array(
     'username' => array(
      'rule'=>array('minLength', 1), 
      'message'=>'Please enter your username'), 
     'password' => array(
      'rule'=>array('minLength', 1), 
      'message'=>'Please enter your password') 
    ); 
} 

的想法是,如果用戶不填寫登錄表單上的字段,然後它會顯示上面的消息。但它不起作用?

回答

1

你真正應該使用的是'notEmpty',設置'allowEmpty'爲false,並確保它是'required'

var $validate = array(
    'username' => array(
     'rule' => 'notEmpty', 
     'required' => true, 
     'allowEmpty' => false, 
     'message' => 'Please enter a username' 
    ) 
    'password' => array(
     'rule' => 'notEmpty', 
     'required' => true, 
     'allowEmpty' => false, 
     'message' => 'Please enter a password' 
    ) 
); 

更新:

一個黑客位,但改變你的登錄表單中的名稱「 UserLogin' - 然後在你的過濾器前檢查是否設置了$ this-> data ['UserLogin']。如果是 - 檢查$ this-> data ['UserLogin'] ['username']是否爲空,如果是這樣,只需設置一個閃爍表示其爲空。密碼也一樣。

+0

嗨,我還沒有得到驗證信息:http://driz.co.uk/admin/login – Cameron

+0

哎呀!這次沒有閱讀過標題 - 對於您的登錄表單,實際上再次提供任何反饋都是不好的做法;再次,任何黑客都可以用它來了解什麼樣的驗證到位,並使暴力更容易。可能爲什麼蛋糕不會讓你顯示錯誤。 –

+0

我的客戶請求驗證(服務器端),如果用戶發送一個空白表單,但我需要弄清楚如何去做。 – Cameron