ECMall使用邮箱登录功能

2016-07-07 16:48 来源:www.chinab4c.com 作者:ecshop专家

刚刚写的一个小功能,发上来大家共享,支持开源!
首先呢我们要先找到登录验证在什么地方。
\app\frontend.base.php 在这个文件中115行的位置增加下边的代码
//增加用户使用电子邮件登录功能 2010-5-20 14:10:41 Dearlv.
if(is_email($user_name))
{
$mod_user =&m('member');
$user_name_arr=$mod_user->get(array(
'fields'=> 'user_name',
'conditions' => "email='".$user_name."'",
));
}
$user_name=trim($user_name_arr['user_name']);
这样就可以实现一个简单的邮箱登录了。支持开源,请保留版权!~
PS:大家要实现邮箱地址登录功能,别忘了在后台开启检查邮箱唯一!~也就是一个邮箱只能注册一个账户!~

回答:
试了下,不成功啊,能提供点详细的说明不??
后台邮箱唯一开启也没找到在哪呢

在后台开启了检查邮箱,但一点效果都没有。

好啊~~~~

看了下回复,说不明? 我来解释下这段程序
if(is_email($user_name)) //这一步是调用原来有的方法检查用户输入的是否是电子邮箱
{
$mod_user =&m('member');//这个是实例化一个模型,在这个模型里边存储了用户的相关信息
$user_name_arr=$mod_user->get(array(
'fields'=> 'user_name',
'conditions' => "email='".$user_name."'",
));//这个是以get方法以查询表中email字段为条件查询username 然后放到一个数组里边
}
$user_name=trim($user_name_arr['user_name']);//这一步是将数组中的username重新赋值给username。
这个我试验了是可行的。

或许你们的程序是经过二次开发的,所以我把放在什么地方明确一下
在上边我说的文件里边有
$user_name = trim($_POST['user_name']);
$password= $_POST['password'];
上边两句!~这个是获取用户输入的用户名和密码,在下边接着放上我写的代码就可以了
在源程序来说获取结束就是
$ms =& ms();
$user_id = $ms->user->auth($user_name, $password);
这段代码。或许有所不一样,但是放到获取用户输入的用户名密码下边是没有错误的。因为的代码原理是根据用户输入的数据判断是否是电子邮箱,如果是才走的写的代码!~然后在后边会根据邮箱获取的用户名重新赋值给user_name 然后就是按原程序走!~

if(is_email($user_name)) //这一步是调用原来有的方法检查用户输入的是否是电子邮箱
{
$mod_user =&m('member');//这个是实例化一个模型,在这个模型里边存储了用户的相关信息
$user_name_arr=$mod_user->get(array(
'fields'=> 'user_name',
'conditions' => "email='".$user_name."'",
));//这个是以get方法以查询表中email字段为条件查询username 然后放到一个数组里边
$user_name=trim($user_name_arr['user_name']);//这一步是将数组中的username
}
将重新赋值放到IF里边才对!~

后台开启检查邮箱唯一?这个貌似没有吧!请问这个在哪里才可以设置???