通过清心醉

Ecshop同步手机/邮箱/用户名登陆方法

首先作者提醒下,邮箱关系倒不到,不过考虑到后期肯定也要做个邮箱验证。

而手机是必须要有验证的,否则的话建议在模板里关闭手机注册/修改功能,否则上线之后手机号重复是个很严肃的问题。

言归正转:

修改user.php文件。

ECSHOP登陆的,请求的是该页面

elseif ($action == ‘act_login’) 在这里是请求登陆

当获取了参数之后是执行if ($user->login($username, $password,isset($_POST[‘remember’])))里的

所以我们需要写在这之前

首先我们在文件结尾处写个判断电话号码的正则表达式:

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

接下来:

if(is_email($username)) //首先判断是否符合邮件
{
$sql =”select user_name from “.$ecs->table(‘users’).” where email='”.$username.”‘”; //SQL语句
$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;
}
}
 if ($user->login($username, $password,isset($_POST[‘remember’]))) 必须写在该语句前,才能很好的判断。因为会给$username重新赋值

这样就可以完整的多登陆方式了!

关于作者

清心醉 administrator

发表评论

请输入验证码: