2011-08-21 100 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