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

今天在网上看到一个帖子,讲的是“如何让ECSHOP也支持用邮箱登录、用手机号码登录”,
很多人跟帖说不能用,其实不是不能用,
而是楼主提供的方法有一定的局限性,
就是“用户登录”页面必须“启用验证码”,楼主那个方法才好使。

其实很简单,就是把那段代码换了个位置就OK了。下来有时间,三个太阳会把它做成ECSHOP插件形式共享给大家
以下是具体的方法:

修改 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代码,实现注册时验证手机的唯一性,
如果再能用短信形式验证手机的真实性,就更完美了,这只是后话,期待更完善。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值