规则问题。

#1 okbb

var $verifier = array( // 验证登录信息,由于密码是加密的输入框生成的,所以不需要进行“格式验证”
"rules" => array( // 规则
'uname' => array( // 这里是对uname的验证规则
'notnull' => TRUE, // uname不能为空
'minlength' => 3, // uname长度不能小于3
'maxlength' => 12 // uname长度不能大于12
),
'umail' => array( // 这里是对email的验证规则
'notnull' => TRUE, // uname不能为空
'email' => TRUE,
'minlength' => 8, // uname长度不能小于3
'maxlength' => 20 // uname长度不能大于12
),
'upass' => array( // 这里是对密码的验证规则
'notnull' => TRUE, // 密码不能为空
'minlength' => 5, // 密码长度不能小于5
'maxlength' => 12, // 密码长度不能大于12
),
'comfirm_upass' => array( // 这里是对第二次输入的密码的验证规则
'equalto' => 'upass', // 要等于'password',也就是要与上面的密码相等
),

),

注册的时候要验证4个,但是登入的时候只要二个
 
$rows = array('uname' => $uname, 'upass' => upass);

这时spVerifier($rows); 完了去登入的话,'comfirm_upass' 和'umail'会提示没通过验证,怎么让这二个无条件通过呢

2010-08-15 18:21:43

#2 jake

登录时不能使用注册的验证规则。除非,规则中除了用户名和密码外的项都是notnull = false,也就是可为空的情况下,那么登录就可以用注册的规则。

一般来说我是比较建议另写个登录规则,其实就复制粘贴。你在用之前再
$g->verifier = $g->login_verifier 就可以转到新的规则上面了。

2010-08-15 19:05:44

#3 okbb

有门,研究下

2010-08-15 20:31:49

#4 jake

在model内

class lib_gusetbook extends spModel{
var $register_verifier = array(); // 注册验证
var $login_verifier = array(); // 登录验证

}

使用时:
$g->spClass('lib_gusetbook');
// 注册
$g->verifier = $g->$register_verifier;
$msg = $g->spVerifier($this->spArgs());

// 登录
$g->verifier = $g->$login_verifier;
$msg = $g->spVerifier($this->spArgs());

2010-08-15 21:58:43

#5 okbb

$g->verifier 就包括rules跟msg了吧。
还有这句$g->spVerifier($this->spArgs());
spArgs()不是取所有参数吗,为什么你这个想得到$msg 它就得到$msg

:funk:

2010-08-15 23:07:58

#6 jake

$g->verifier 就包括rules跟msg了吧。
还有这句$g->spVerifier($this->spArgs());
spArgs()不是取所有参数 ...
okbb 发表于 2010-8-15 23:07
这里的$msg只是代表了验证的结果

2010-08-16 09:27:13