实现ecshop手机号码和Email地址登录

本ECSHOP功能是客户买过来的,在这里完全免费分享出来。在这里也非常感谢分享这个功能的客户!
默认的ECSHOP程序不 支持手机号码和邮箱登录,本插件是根据主流的B2C商城功能开发了此功能。整合原有登录系统,不影响原有登录系统数据结构。现在的网站要注册的地方真多, 用户名也是太多了不方便记忆。同时,也是为了提高会员品质,我们把会员登录帐号设置为支持用户名、手机号码和邮箱登录,这样可以大大提高网站有效用户,现 在基本上每个用户都有一个手机号码和邮箱。

用手机号码和邮箱登录,好处很明显:
1、使用手机号码和邮箱登录让网站更安全,追随用户体验趋势。
2、可以促使用户填写真实的手机号码和邮箱。
3、不易忘记。
4、使用手机号码和邮箱登录,更方便用户,提高客户回头率。

打开user.php文件,搜索找到如下代码:

    if ($user->login($username, $password,isset($_POST['remember'])))
    {
        update_user_info();
        recalculate_price();
        $ucdata = isset($user->ucdata)? $user->ucdata : '';
        show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info');
    }

在这段代码的上面添加:(看清楚是在上面)

    if (is_email($username))
    {
        $sql = "SELECT user_name FROM " . $ecs->table('users') . " WHERE email = '".$username."'";
        $username = $db->getOne($sql);
        if (!$username)
        {
            return false;
        }
    }
    if (is_telephone($username))
    {
        $sql ="SELECT user_name FROM " . $ecs->table('users') . " WHERE mobile_phone = '".$username."'";
        $username = $db->getOne($sql);
        if (!$username)
        {
            return false;
        }
    }

接着最下面 ?> 的上一行加入以下代码:

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;
    }
}

版权声明:
作者:xiaoniba
链接:https://blog.xiaoniba.com/2016/02/13/%e5%ae%9e%e7%8e%b0ecshop%e6%89%8b%e6%9c%ba%e5%8f%b7%e7%a0%81%e5%92%8cemail%e5%9c%b0%e5%9d%80%e7%99%bb%e5%bd%95/
来源:小泥吧的博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>