修改ECSHOP注册只需要email,并且使用email作为账号

现在很多主流的电商网站都直接用email作为会员账号,好处是省得用户既要想一个用户名,又要填邮箱,邮箱对于电商网站的重要性不用多提,因此用email作为会员的唯一标识是很合理的做法,本文给出针对ECSHOP实现该功能的方法,原理是注册时将email表单的值顺便返回给username,并去掉注册时username的js验证,然后在登录中实现username跟email都可以登录,这样做的好处是,即实现了ecshop用email注册登录的功能,又不改动ecshop的数据库和后台功能,其实本质上没有变化什么,会员账号还是存在的,邮箱也是存在的,只是我们强制把会员账号等于email账号。

首先修改注册部分
-------------------------------------------------------------------------------------------------------------------------
1,themes/****/user_passport.dwt 会员名称输入的表单,将之去掉

2,js/user.js 找到 function register() 并将以下代码删除

if (username.length == 0)
  {
    msg += username_empty + ‘\n‘;
  }
  else if (username.match(/^\s*$|^c:\\con\\con$|[%,\‘\*\"\s\t\<\>\&\\]/))
  {
    msg += username_invalid + ‘\n‘;
  }
  else if (username.length < 3)
  {
    //msg += username_shorter + ‘\n‘;
  }

3,user.php 找到 elseif ($action == ‘act_register‘) 将以下代码
$username = isset($_POST[‘username‘]) ? trim($_POST[‘username‘]) : ‘‘;

改为

$username = isset($_POST[‘email‘]) ? trim($_POST[‘email‘]) : ‘‘;

其次实现登录时可以使用email登录
-------------------------------------------------------------------------------------------------------------------------
1,includes/modules/integrates/integrate.php 找到 function login 并将整个函数改为以下代码

function login($username, $password, $remember = null)
{
                 if(is_email($username))
                 {
                 $sql = "select ".$this->field_name." from
".$this->table($this->user_table)." where
".$this->field_email."=‘".$username."‘";
                 $username = $this->db->getOne($sql);
                 if(!$username) return false;
                 }
                 if ($this->check_user($username, $password) > 0)
                 {
                                 if ($this->need_sync)
                                 {
                                                 $this->sync($username,$password);
                                 }
                                 $this->set_session($username);
                                 $this->set_cookie($username, $remember);
                                 return true;
                 }
                 else
                 {
                                 return false;
                 }
}

时间: 2024-11-08 18:21:46

修改ECSHOP注册只需要email,并且使用email作为账号的相关文章

ecshop注册用户增加手机验证功能

1.去掉“用户名”注册 a.去掉提交 user_passport.dwt页面去掉 <input name="username" type="text" size="30" id="username" onblur="is_registered(this.value);" class="input_login" />提交 b.去掉js表单验证,user.js 去掉,var us

转 我修改的注册表,但是程序运行起来,还是记着以前的

我修改的注册表,但是程序运行起来,还是记着以前的,我查看了相关资料,说是修改只是暂时保存在memory,并没有保存到harddisk中,请高手指点一下,我用python写的,代码如下import win32apiimport win32con def RegSubkeySet(dbName, dbVersion):        key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,'Software\\DSA\\PRODIS Office\\

Java 修改Windows注册表,以实现开机自启动应用程序。

使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg add 将新的子项或项添加到注册表中 语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f] 参数 KeyName 指定子项的完全路径.对于远程计算机,请在\\ComputerName\Pat

修改ecshop模板体会

在上一篇中给大家带来了ecshop的总体的框架.从总体上看ecshop,相信大家的思路应该很清楚.作为一个对开源项目修改者你来说,能对ecshop有个初步的了解就行了,下面我会给大家带来我在修改ecshop的过程中的一些体会. 下面我们来根据ecshop跟大家讨论一下模板.说到模板,这就是ecshop前台显示的主要文件,如果你能很好理解theme下模板文件和样式表文件,对于ecshop前台显示应该没有任何问题了. Ecshop中页面到底是怎么显示的呢?这个问题我们先放在一边,我们先研究一下ecs

“makefile”写法详解,一步一步写一个实用的makefile,详解 sed &#39;s,$?\.o[ :]*,\1.o [email&#160;protected] : ,g&#39; &lt; [email&#160;protected]

目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译.并且当某个.c/.cpp..h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译. 二要达到这个目的,用到的技术有:1-使用wildcard函数来获得当前目录下所有.c/.cpp文件的列表.2-make的多目标规则.3-make的模式规则.4-用gcc -MM命令得到一个.c/.cpp文件include了哪些文件.5-用sed命令对gcc -MM命令的结果作修改.6-用include命

根据Email域名获取Email网站地址

/**      * 根据邮箱获取邮箱网址      * @param $email      * @return bool|string      */     public static function getEmail($email)     {         $data = array(             '163.com' => 'mail.163.com',             'vip.163.com' => 'vip.163.com',             '

修改win7注册表发挥大容量内存优势

现在请打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control \Session Manager\MomoryManagement],在右侧窗格修改一下键值(要注意的是,做一下设置的前提是内存最好超过512MB,并仅限于Windows 2000/XP). (1)"LargeSystemCache"(启动大的系统缓存):在内存中开辟一块大的内存空间用于磁盘文件系统的预读取操作.当程序连续请求的数据增加时,Windows

修改ECSHOP后台的商品列表里显示该商品品牌

如何在在ECSHOP后台的商品列表中也显示商品的品牌”.下面就来最模板讲一下如何来修改.此方法只保证在ECSHOP2.7.2版本下有效,其他版本请参照修改. 第一步:首先我们来打开程序文件: /admin/includes/lib_goods.php 定位到 goods_list  函数部分 找到下面代码(大概在911行左右) $sql = "SELECT goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is

如何修改ECShop发货单查询显示个数

使用ecshop的朋友都知道,商城首页调用的发货单查询,默认显示的10个.很多朋友想修改它的数量,可是在后台管理却找不到相应的地方,这个修改和显示排行榜的数量修改方法不一样.排行榜是可以在后台修改的,但是这个发货单数量却没有相应的地方. 如果你想把自己的商城发货单数量改成其他数字,怎么办呢?想做出滚动效果10个是远远不够的,那么下面最模板就教大家怎么修改. 其实,当初最模板也不会修改,也和大家一样迷茫,好在ecshop官方论坛有热心朋友帮忙. 你只需要在程序中index.php中找到下面这样的代