搜索
查看: 1807|回复: 0

ecshop注册页面添加推荐人验证功能

[复制链接]

28

主题

27

帖子

5216

积分

超级版主

Rank: 8Rank: 8

积分
5216

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献终身VIP会员尊贵VIP会员

发表于 2016-7-31 13:14:29 | 显示全部楼层 |阅读模式

实现ecshop注册页有推荐人功能,主要修改4个页面     思路,就是复制  用户名input的功能给推荐人就行了  不用改底层
    1.前台模板   user_passport.dwt
    2.js(jquery实现的)文件     user.js
    3.前台       user.php
    4.             lib_passport.php

1首先在用户注册模板中的相关位置添加    推荐人input  html属性

  1. <!--邮箱-->
  2.                 <div class="inputbg">
  3.                   <label class="labelbox">
  4.                       <input name="email" type="text" id="email" onblur="checkEmail(this.value);" onkeyup="checkEmail(this.value);" placeholder="{$lang.label_email}">
  5.                   </label>
  6.                   <span class="t_text">{$lang.label_email}</span>
  7.                   <span class="error_icon"></span>
  8.                 </div>
  9.                 <div class="err_tip" id="email_notice"><em></em> </div>
  10.                
  11.                  <!--推荐人-->
  12.                 <div class="inputbg">
  13.                   <label class="labelbox">
  14.                       <input name="rec_user" type="text" id="rec_user" onblur="is_rec_registered(this.value);" onkeyup="is_rec_registered(this.value);"  placeholder=" {$lang.label_rec_user}">
  15.                   </label>
  16.                   <span class="t_text"> {$lang.label_rec_user}</span>
  17.                   <span class="error_icon"></span>
  18.                 </div>
  19.                 <div class="err_tip" id="rec_user_notice"><em></em> </div>
复制代码
is_rec_registered(this.value) js函数   就需要在   user.js中去修改了

2.打开  user.js文件
找到方法   function is_registered( username );  复制并在其下面粘贴一份   修改名字为  function is_rec_registered( rec_user ),单独验证推荐人是否是已经注册的用户、
代码如下:
//推荐人修改  start
function is_rec_registered( rec_user )
{
    var submit_disabled = false;
    var unlen = rec_user.replace(/[^\x00-\xff]/g, "**").length;

    if ( rec_user == '' )
    {
        document.getElementById('rec_user_notice').innerHTML = '推荐人不允许为空!';
        var submit_disabled = true;
    }

    if ( !chkstr( rec_user ) )
    {
        document.getElementById('rec_user_notice').innerHTML = '推荐人包含非法字符';
        var submit_disabled = true;
    }
    if ( unlen < 3 )
    {
        document.getElementById('rec_user_notice').innerHTML = '推荐人长度不能少于 3 个字符。';
        var submit_disabled = true;
    }
    if ( unlen > 14 )
    {
        document.getElementById('rec_user_notice').innerHTML = '推荐人长度多多少于 14 个字符。';
        var submit_disabled = true;
    }
    if ( submit_disabled )
    {
        document.forms['formUser'].elements['Submit'].disabled = 'disabled';
        return false;
    }
    Ajax.call( 'user.php?act=is_rec_registered', 'rec_user=' + rec_user, rec_registed_callback , 'GET', 'TEXT', true, true );
}
注册  ajax.call 调用的函数  rec_registed_callback()   改函数实现根据返回的 result的真假状态,在页面提示信息(推荐人不存在...)
function rec_registed_callback(result)
{
  if ( result == "true" )
  {

    $("#rec_user").parent().removeClass("params_error");
    $("#rec_user").parent().addClass("params_success");

    document.getElementById('rec_user_notice').innerHTML = "<em></em>"; //zhouhuan
    document.forms['formUser'].elements['Submit'].disabled = '';
  }
  else
  {

    $("#rec_user").parent().removeClass("params_success");
    $("#rec_user").parent().addClass("params_error");
    document.getElementById('rec_user_notice').innerHTML = '推荐人不存在,请重新输入';
    document.forms['formUser'].elements['Submit'].disabled = 'disabled';
  }
}

//推荐人修改   end


3. 修改user.php文件   重要!!!!
首先找到               $not_login_arr =array('login','act_login';          在这个数组里面讲   act的  is_rec_registered加进去
$not_login_arr =
array('login','act_login','register','act_register','act_edit_password','get_password','send_pwd_email','password', 'signin', 'add_tag', 'collect', 'return_to_cart', 'logout', 'email_list', 'validate_email', 'send_hash_mail', 'order_query', 'is_registered',
'is_rec_registered', 'check_email','clear_history','qpassword_name', 'get_passwd_question', 'check_answer','oath' , 'oath_login', 'other_login');
再添加下面代码,  当act == is_rec_registered的时候 执行下面操作(检查推荐人是否注册)
/* 验证推荐人是否注册 */
elseif ($action == 'is_rec_registered')
{

    include_once(ROOT_PATH . 'includes/lib_passport.php');

    $rec_user = trim($_GET['rec_user']);
    $rec_user = json_str_iconv($rec_user);

    if ($user->check_user($rec_user) || admin_registered($rec_user))
    {
        echo 'true';
    }
    else
    {
        echo 'false';
    }
}

最后在  lib_passport.php文件中
查找到     $up_uid = get_affiliate();
讲下面的if语句替换成   (原来的是根据ID查找,现在根据rec_user)
            if (!empty($rec_user))
            {
                 $recsql = "SELECT user_id FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_name = '$rec_user'";
                   $recone = $GLOBALS['db']->getOne($recsql);
                   if ($recone)
                 {
                       $up_uid=$recone;
                  }
            }

大体流程思路就这样,   具体要%
心怀梦想
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

前身为模板家园。国内NO.1电商解决方案平台

五年来一直为电商系统做优质的服务而不断努力着!

Copyright © 2011-2016 cybn.Cn. Powered by Discuz!

返回顶部 返回列表