CakePHP应用程序上的登录表单验证
我已将以下验证添加到我的用户模型中:CakePHP应用程序上的登录表单验证,cakephp,Cakephp,我已将以下验证添加到我的用户模型中: class User extends AppModel { var $useTable = 'users'; var $validate = array( 'username' => array( 'rule'=>array('minLength', 1), 'message'=>'Please enter your username' ),
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' )
);
}
这个想法是,如果用户没有填写登录表单上的字段,那么它将显示上面的消息。但是它不起作用???您实际应该使用的是,设置为false并确保它是 更新:
有点麻烦,但是将登录表单的名称更改为“UserLogin”-然后在之前的筛选器中检查是否设置了$this->data['UserLogin']。如果是-检查$this->data['UserLogin']['username']是否为空,如果是,只需设置一个flash,说明其为空。密码也是一样。哇!这次没有读标题-对于你的登录表单来说,提供任何反馈实际上也是一种不好的做法;同样,任何黑客都可能使用它来了解什么样的验证是到位的,并使其更容易暴力实施。可能是cake不允许您显示错误的原因。我的客户端已请求在用户发送空白表单时查看验证(服务器端),因此我需要了解如何执行。更新了一种执行方法。不是最好的,也不推荐!
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'
)
);