#1 newsun668
我有一个前端页面,用于用户登录,输入username、password,表单是提交到控制器main中的 login,代码如下://用户登录检测
function login(){
$v_args=$this->spArgs();
$vm_users=spClass('m_users');
$vm_users->verifier=$vm_users->verifier_login;
$v_verify_result=$vm_users->spVerifier($v_args);
if (false==$v_verify_result) //通过验证
{
session_start();
$_SESSION['USER_ID']=$v_args['username'];
$this->jump(spUrl('main', 'index')); // 跳转到首页
}else
{
//显示错误信息
$this->tv_article_image='/images/zz' . rand(1,7) . '.jpg';
$this->tv_error_list=$v_verify_result;
$this->display('error_verifier_tpl.html');
}
}
代码验证在数据模型m_users中,添加了自己的验证规则代,代码如下:
//定义用户登录的验证规则
var $verifier_login = array(
"rules" => array( // 规则
'username' => array( // 这里是对username的验证规则
'notnull'=>True,
'validate_user'=>TRUE, //必须是有效用户
),
'password' => array( // 这里是对username的验证规则
'notnull'=>True,
),
'verifyCode'=>array( //验证码
'checkVerifyCode'=>TRUE,
),
),//rules end
"messages" => array( // 提示信息
'username' => array(
'validate_user'=>'帐号或密码错误!',
'notnull'=>'用户名必须输入',
),//username end
'password'=>array(
'notnull'=>'密码必须输入',
),
'verifyCode'=>array( //验证码
'checkVerifyCode'=>'输入的验证码不正确',
),
),//message end
);
///////
//检查是否有效用户,密码与用户名必须正确
function validate_user($val,$right,$values)
{
$v_username=$val;
$v_password=$values['password'];
$v_exist=false; //默认不存在
if (($v_password!=null) && ($v_username!=null) ){
$v_where=array('username'=>$v_username,
'password'=>md5($v_password));
$v_id=$this->find($v_where);
if (false!=$v_id) $v_exist=TRUE; //用户存在
}
return ($v_exist===$right);
}
测试时,输入正确的用户、密码、验证码后,总是报告用户名或密码不正确,是不是我的 validate_user写得不正确呢?
2013-11-20 15:43:37