ECMall使用邮箱登陆功能

刚刚写的一个小功能,发上来你们共享,支持开源!
首先呢咱们要先找到登陆验证在什么地方。
\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里边才对!~
相关文章
相关标签/搜索