|
我是想做用户名或邮箱都可登录的功能,但是问题是密码查询验证时出现问题了,一张表可能会有相同密码,这样就出现一对多的现象,怎样让它在输入用户名或邮箱的这条数据里查询密码。
大概意思是:用户名和密码 或者 邮箱和密码 这样的查询,一 一 对应的关系;
控制器代码:
public function login()
{ //获取视图输入的内容,用于和数据库对比
if ($_POST) {
extract($_POST);
if ( $unames
&& $password
&&$this->user_model->is_pass($password)
//数据库里可能有相同密码,变成一个用户名对应多个密码了
&& $this->user_model->is_front($unames)
) {
redirect('front/welcome/index');
}
}
model里的代码:
public function is_pass($password)
{//验证登录时输入密码是否一致
return $this->db->where(array('allow_login' => 1, 'password' => md5(md5($password))))->get($this->table,1)->row_array();
}
public function is_front($unames)
{ ///验证登录时输入的用户名或者邮箱是否一致,把它们放到一个参数 $unames里了
return $this->db->or_where(array('email'=> $unames,'uname'=> $unames))->get($this->table)->row_array();
}
如何实现一个用户名或者邮箱对应一个密码,大神们帮忙看下,
|
|