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 username  = Utils.trim(frm.elements['username'].value);   第439行

去掉,

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';
  }

c.在php代码中,去掉相关的验证 (检测用户名长度),user.php 第40行

在elseif ($action == 'act_register'),去掉

/*if (strlen($username) < 3)
        {
            show_message($_LANG['passport_js']['username_shorter']);
        }*/

注意:下面代码可以选择去掉,也可以选择不去掉。如果不去掉,则只需要把username的值设置不想等就可以了(可以把username的值等于当前时间,则username=time())。那么d,e步骤可以不需要修改

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

推荐解决办法1,user.php:username=isset(username=isset(_POST['email']) ? trim($_POST['email']) : '';

推荐解决办法2,user.php: $username = gmtime();

/*以下验证有点小问题 会出现 UNKNOWN ERROR! 提示*/

d.去掉验证(检测用户名是否为空),lib_passport.php

if (empty($username))
    {
        $GLOBALS['err']->add($GLOBALS['_LANG']['username_empty']);
    }
    else
    {
        if (preg_match('/\'\/^\\s*$|^c:\\\\con\\\\con$|[%,\\*\\"\\s\\t\\<\\>\\&\'\\\\]/', $username))
        {
            $GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['username_invalid'], htmlspecialchars($username)));
        }
    }

e.去掉验证(检测用户名是否已经存在),lib_passport.php  第87行

/*elseif ($GLOBALS['user']->error == ERR_USERNAME_EXISTS)
        {
            $GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['username_exist'], $username));
        }*/

2.增加手机验证功能

a.html代码

<tr>
          <td align="right">手机:</td>
          <td>
          <input name="mobile_phone" type="text"  class="input_login" id="mobile_phone" onblur="checkMobile(this.value);" size="30"/>
            <span  style="color:#FF0000"> *</span>
          </td>
        </tr>
        <tr>
          <td align="right">&nbsp;</td>
        <td><span id="mobile_notice" class="red"></span>&nbsp;</td></tr>

b.增加js代码,checkMobile效果,user.js

function checkMobile(mobile)
{
  var submit_disabled = false;
  mobile = Utils.trim(mobile);

  if (mobile == '')
  {
    document.getElementById('mobile_notice').innerHTML = '* 手机号码不能为空';
    submit_disabled = true;
  }else if(mobile.length !=11){
     document.getElementById('mobile_notice').innerHTML = '* 不是一个有效的手机号码';
    submit_disabled = true;
  }

  if( submit_disabled )
  {
    document.forms['formUser'].elements['Submit'].disabled = 'disabled';
    return false;
  }
  Ajax.call( 'user.php?act=check_mobile', 'mobile=' + mobile, check_mobile_callback , 'GET', 'TEXT', true, true );
}
function check_mobile_callback(result){
    if ( result == 'ok' )
      {
        document.getElementById('mobile_notice').innerHTML = '* 可以注册';
        document.forms['formUser'].elements['Submit'].disabled = '';
      }
      else
      {
        document.getElementById('mobile_notice').innerHTML = '* 手机已经被注册,请重新输入';
        document.forms['formUser'].elements['Submit'].disabled = 'disabled';
      }
}

c.增加Ajax访问check_mobile,user.php 第302行

elseif($action == 'check_email')
{
    $email = trim($_GET['email']);
    if ($user->check_email($email))
    {
        echo 'false';
    }
    else
    {
        echo 'ok';
    }
}
/*增加代码*/
elseif($action == 'check_mobile'){
    $mobile = trim($_GET['mobile']);
    $sql = 'SELECT user_name, email FROM ' . $ecs->table('users') . " WHERE mobile_phone = '$mobile'";
    $row = $db->getRow($sql);
    if($row){
        echo 'false';
    }else{
        echo 'ok';
    }
}

/*End*/

ecshop注册用户增加手机验证功能的更多相关文章

  1. ecshop修改注册、增加手机

    1.去掉“用户名”注册 a.去掉提交 user_passport.dwt页面去掉 <input name="username" type="text" s ...

  2. discuz3.2x增加邮箱验证功能

    为防止垃圾用户多次注册,为disczu增加邮箱验证功能. 大致分为二步: 1.申请邮箱,这里推荐使用腾讯免费企业邮箱:https://exmail.qq.com/portal/introducefre ...

  3. ecshop会员中心增加订单搜索功能

    在user.php中的act=order_list中增加以下程序. $order_sn = isset($_REQUEST['order_sn'])?$_REQUEST['order_sn']:''; ...

  4. springMVC中实现用户登录权限验证

    通过上网搜资料显示,使用filter和interceptor都可以实现.不过推荐使用interceptor. 下面就使用Interceptor实现用户登录权限验证功能. 拦截器需要实现Inceptor ...

  5. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  6. 1_python小程序之实现用户的注册登陆验证功能

    python小程序之实现用户的注册登陆验证功能 程序扼要简述:  一.程序流程:1.程序开始2.判断本地文件/数据库是否已存在用户信息,存在则跳转到登陆,否则跳转到注册,注册成功后后跳转到登陆3.判断 ...

  7. java在线聊天项目 客户端登陆窗口LoginDialog的注册用户功能 修改注册逻辑 增空用户名密码的反馈 增加showMessageDialog()提示框

    LoginDialog类的代码修改如下: package com.swift.frame; import java.awt.EventQueue; import java.awt.event.Acti ...

  8. 如何实现php手机短信验证功能

    http://www.qdexun.cn/jsp/news/shownews.do?method=GetqtnewsdetailAction&id=1677 下载php源代码 现在网站在建设网 ...

  9. 实现Ecshop注册页面手机号唯一的验证

    如果Ecshop实现了用手机号码来登陆,那么就需要在注册时保证会员所填写的手机号是唯一的,也就是说手机号还未被注册,那么该怎么来检测填写的手机号是否注册过了呢? 一.参考ecshop检测邮箱 因为注册 ...

随机推荐

  1. 028-实现阿里云ESC多FLAT网络

    实现类似于阿里云ECS的网络结构,其效果为云主机拥有两块和两个不同的网络,一个网络是用于用于和外网连接,一个用于内网通信,但宿主机上至少有两个网卡,整体配置如下:1.在wmare里给宿主机添加一块网卡 ...

  2. PAT Basic 1010 一元多项式求导 (25 分)(活用stringstream,昨天学习的)

    设计函数求一元多项式的导数.(注:x​n​​(n为整数)的一阶导数为nx​n−1​​.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔. ...

  3. CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程

    1.1 FastDFS的应用场景 FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片.视频.文档等文件.对于互联网应用,和其他分布式文件系统相比,优势非常明显.其中 ...

  4. Codeforces 934 最长不递减子序列 多项式系数推导

    A B C 给你一个长度为N的01串 你可以翻转一次任意[L,R]的区间 问你最长的不递减序列为多少长 处理出1的前缀和 和2的后缀和 然后N^2 DP 处理出 [L,R]区间的最长不递增序列 #in ...

  5. python3-多重继承

    继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能. 回忆一下Animal类层次的设计,假设我们要实现以下4种动物: Dog - 狗狗: Bat - 蝙蝠: Parrot - ...

  6. bzoj5089 最大连续子段和 分块+复杂度分析+凸包

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5089 题解 本来打算迟一点再写这个题解的,还有一个小问题没有弄清楚. 不过先写一下存个档吧. ...

  7. vue 父子组件渲染

    问题描述:父组件调用了一个子组件,传递了一个id的属性到子组件, 但是在子组件中将这个id的props属性赋值给了data里面定义的另外一个属性myId,并且写了watch监听这个id的props. ...

  8. 关了浏览器再开,怎么session还在?

    关了浏览器session当然仍然存在,因为session是储存在服务器端的,而服务器是不可能知道你有没有关掉浏览器. 服务器只是简单的保持session接受用户请求,只有当session一段时间没有被 ...

  9. maven整合eclise

    -Dmaven.multiModuleProjectDirectory=$M2_HOME

  10. [思路题][LOJ2290][THUWC2017]随机二分图:状压DP+期望DP

    分析 考虑状压DP,令\(f[sta]\)表示已匹配状态是\(sta\)(\(0\)代表已匹配)时完美匹配的期望数量,显然\(f[0]=1\). 一条边出现了不代表它一定在完美匹配内,这也导致很难去直 ...