ECSHOP支持用手机号码登录、邮箱登录、Email登录

不想你离开。 提交于 2020-03-07 12:20:30


之前在网上搜索的不起作用,看代码没问提啊

原来是那方法有一定的局限性,

就是“用户登录”页面必须“启用验证码”

其实很简单,就是把那段代码换了个位置就OK了。

以下是具体的方法:

修改 User.php  文件

找到

if ($user->login($username, $password,isset($_POST['remember'])))


在它上边增加一段ECSHOP代码

if(is_email($username))
{
$sql ="select user_name from ".$ecs->table('users')." where email='".$username."'";
$username_e = $db->getOne($sql);
if($username_e) $username=$username_e;
}
if(is_telephone($username))
{
$sql ="select user_name from ".$ecs->table('users')." where mobile_phone='".$username."'";
$username_e = $db->getOne($sql);
if($username_e) $username=$username_e;
}



继续在 user.php 的底部再增加一段代码


function is_telephone($phone){
$chars = "/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$/";
if (preg_match($chars, $phone)){
return true;
}
}


这样修改以后,即使你没启用验证码,也是OK的。

不过这个代码还是有一定的BUG的,
因为ECSHOP注册用户的时候,手机号码没有验证唯一性,
所以数据库中有可能存在不同用户名,同一个手机号的情况。
我们可以进一步修改ECSHOP代码,实现注册时验证手机的唯一性,
如果再能用短信形式验证手机的真实性,就更完美了,这只是后话,期待更完善。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!