首先作者提醒下,邮箱关系倒不到,不过考虑到后期肯定也要做个邮箱验证。
而手机是必须要有验证的,否则的话建议在模板里关闭手机注册/修改功能,否则上线之后手机号重复是个很严肃的问题。
言归正转:
修改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重新赋值
这样就可以完整的多登陆方式了!
关于作者