用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1343|回复: 3
收起左侧

用户名和邮箱都可登录,model里该怎么写

[复制链接]
发表于 2015-6-9 17:16:42 | 显示全部楼层 |阅读模式
现在只能用户名登录,model验证代码:
public function is_user($uname,$password) //这里的$uname,$password是从视图获取的  
    {
      
        $r = $this->db->where(array('allow_login' => 1, 'uname'=> $uname,'password' => md5(md5($password))))->get($this->table)->row_array();
//这是验证时否和数据库的一样,现在是要用户名或邮箱都可以登录,这里该怎么写       

if ($r && is_array($r)) {
            $this->session->set_userdata(array('uid' => $r['uid']));
            $this->session->set_userdata(array('uname' => $r['uname']));
             $this->session->set_userdata(array('email' => $r['email']));
            $this->session->set_userdata(array('gid' => $r['gid']));
            $this->session->set_userdata(array('is_pay' => $r['is_pay']));
            $this->session->set_userdata(array('is_join' => $r['is_join']));
            

            return TRUE;
        }
        return FALSE;
    }

各位大神帮我看看

发表于 2015-6-9 17:35:22 | 显示全部楼层
以郵箱的正則表示式去檢查用戶名
若是郵箱,就檢查郵箱欄位
若不是,就檢查用戶名
 楼主| 发表于 2015-6-9 17:50:52 | 显示全部楼层
Closer 发表于 2015-6-9 17:35
以郵箱的正則表示式去檢查用戶名
若是郵箱,就檢查郵箱欄位
若不是,就檢查用戶名 ...

不是啊,$uname是视图写入的字段,现已获取到,和数据库对比,$this->db->where('uname'=> $uname)和数据库的uname一样就可以登录,这个实现了
现在要实现的是$uname和数据库中uname字段或者email字段,只要对上一个就可以登录,再用$this->db->where()这个不行了,该用什么区查询对比
发表于 2015-6-9 18:04:06 | 显示全部楼层
bao7626452 发表于 2015-6-9 17:50
不是啊,$uname是视图写入的字段,现已获取到,和数据库对比,$this->db->where('uname'=> $uname)和数据 ...

$this->db->or_where()

本版积分规则