不要用n==0作为if()方法的判断依据
一直犯这个错误好多次,这次记下来,用0作为判断的条件会出现很多问题,因为在计算机语言中0等价于false等价于空,所以如果我们要用广义的数字来做判断时,用0的话只能用>或者
同一个方法作为三种登录的公用方法,分别为普通会员登录,父级管理和资管理登录,当时用$is_parent来作为判断父子管理员,结果
走到result时,我用普通用户登录,结果满足了 ($is_parent == 0 && $son_result->password !== md5(Yii::app()->params[‘key’] . $this->password)这个条件,导致普通用户登录一直报密码错误,因为普通用户的$is_parent是null,所以判断将他们都视为了false,当然2条件是肯定满足的,就一直报错了,记下别再犯这种错误。
//判断登录用户类型
if($_POST[‘rdoLoginType’] === ‘memberLogin’){
$result = User::model()->find(‘username=:name’,array(‘:name’=>$this->username));
}
if($_POST[‘rdoLoginType’] === ‘agentLogin’){
//miracle修改子账户登录
$son_result = Agentteam::model()->find(‘username=:name’,array(‘:name’=>$this->username));
if($son_result === null){
$result = Agent::model()->find(‘username=:name’,array(‘:name’=>$this->username));
$is_parent = 1;
}else{
$result = Agent::model()->find(‘id=:id’,array(‘:id’=>$son_result->agent_id));
$is_parent = 0;
}
}
if($result === null){
$this->errorCode = self::ERROR_USERNAME_INVALID;
return 1;
}elseif (($is_parent == 1 && $result->password !== md5(Yii::app()->params[‘key’] . $this->password)) || ($is_parent == 0 && $son_result->password !== md5(Yii::app()->params[‘key’] . $this->password))) {
$this->errorCode = self::ERROR_PASSWORD_INVALID;
return 2;
}
标签:==, ===