【2.7.2版】如何让用户名、email均可登录(老帖看过了,如果有了UC整合就不行了!)

2016-07-07 15:02 来源:www.chinab4c.com 作者:ecshop专家



如题。
老帖是2.7.0版的,按照老帖(http://bbs.ecshop.com/viewthread ... BB%A7%C3%FB%2Bemail)的方法,我重新更改了integrate.php文件里面的login()函数为:
function login($username, $password, $remember = null)
{
if(is_email($username))
{
$sql = "select ".$this->field_name." from ".$this->table($this->user_table)." where ".$this->field_email."='".$username."'";
$username = $this->db->getOne($sql);
if(!$username) return false;
//echo $sql;exit;
}
if ($this->check_user($username, $password) > 0)
{
if ($this->need_sync)
{
$this->sync($username,$password);
}
$this->set_session($username);
$this->set_cookie($username, $remember);
return true;
}
else
{
return false;
}
}
上述代码中红色部分是我根据2.7.2版中login()的实际参数新增的。
测试结果是:用“用户名”还是可以通过登录的,不过用email还是不行的。
请各位大大帮我看一下,或者有什么其他方法可以实现email也可以登录的,拜谢!!

-------------------分割---------------------------------
这几天就这个问题研究了下ecshop的登录方面,感觉好像是整合了UC才导致用email无法登录。去掉了UC后,按照老帖的法子,果然用“用户名”或者“email”都可以登录了。
顺着这个,现在大概需要找到ecshop有关整合的程序了。
烦请各位大大给个提醒,ecshop里哪些文件控制整合的?

回答:
挂了几天了...各位帮忙看一看,给个方向也好,拜谢!

这几天就这个问题研究了下ecshop的登录方面,感觉好像是整合了UC才导致用email无法登录。去掉了UC后,按照老帖的法子,果然用“用户名”或者“email”都可以登录了。
顺着这个,现在大概需要找到ecshop有关整合的程序了。
烦请各位大大给个提醒,ecshop里哪些文件控制整合的?

解决方法很简单:
修改同目录的ucenter.php的login函数,
function login($username, $password) 下增加
  1. if(is_email($username))
  2. {
  3. $sql = "select ".$this->field_name." from ".$this->table($this->user_table)." where ".$this->field_email."='".$username."'";
  4. e4vj $username = $this->db->getOne($sql);
  5. if(!$username) return false;
  6. }
复制代码