ecshop注册页面添加推荐人验证的方法总结

方法一,

注册时增加推荐人选填框:

1,打开/languages/zh_cn/user.php

Ctrl+F,查找$_LANG['label_password'] = '密码';
在下面增加一行:$_LANG['label_rec_user'] = '推荐人';

保存修改

2,打开/themes/当前主题目录/user_passport.dwt

Ctrl+F,查找

在上面粘贴以下代码(可根据你的主题样式修改): 程序代码

 <<tr>
                <<td align="right">{$lang.label_rec_user}
                <<td>
                   <<input name="rec_user" type="text" size="25" id="rec_user" class="inputBg" />
               <</td>
           <</tr>

保存修改

3,打开/user.php

Ctrl+F,查找$email    = isset($_POST['email']) ? trim($_POST['email']) : '';
在下面增加一行:$rec_user    = isset($_POST['rec_user']) ? trim($_POST['rec_user']) : '';
Ctrl+F,查找if (register($username, $password, $email, $other) !== false)
修改为:if (register($username, $password, $email, $rec_user, $other) !== false)

4,打开/includes/lib_passport.php

Ctrl+F,查找 * @param   string       $email             注册email
在下面增加一行: * @param   string       $rec_user          推荐人用户名(此步骤可以跳过,只是加个注释)
Ctrl+F,查找function register($username, $password, $email, $other = array())
修改为:function register($username, $password, $email, $rec_user, $other = array())
Ctrl+F,查找//设置推荐人
将下面的 程序代码

$sql = 'Update '. $GLOBALS['ecs']->table('users') . ' SET parent_id = ' . $up_uid . ' Where user_id = ' . $_SESSION['user_id'];
                $GLOBALS['db']->query($sql);

替换为 程序代码

  
                if (empty($rec_user))
       {
           $rec_userid=$up_uid;
    }
       else
       {
      
     $recsql = "Select user_id FROM " . $GLOBALS['ecs']->table('users') . " Where user_name = '$rec_user'";
     $recone = $GLOBALS['db']->getOne($recsql);
   
     if ($recone)
           {
               $rec_userid=$recone['user_id'];
     }
           else
           {
               $rec_userid=0;
           }
   
        }
              
    $sql = 'Update '. $GLOBALS['ecs']->table('users') . ' SET parent_id = ' . $rec_userid . ' Where user_id = ' . $_SESSION['user_id'];
                $GLOBALS['db']->query($sql);

5,打开/js/user.js

Ctrl+F,查找var password  = Utils.trim(frm.elements['password'].value);
在下面增加一行:var rec_user  = Utils.trim(frm.elements['rec_user'].value);

{$lang.label_rec_user} 
      

方法二,

主要修改4个页面     思路,就是复制  用户名input的功能给推荐人就行了  不用改底层

1.前台模板   user_passport.dwt
2.js(jquery实现的)文件     user.js
3.前台       user.php
4. lib_passport.php
 
1首先在用户注册模板中的相关位置添加    推荐人input  html属性

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

 <!--邮箱-->
    <div class="inputbg">
      <label class="labelbox">
          <input name="email" type="text" id="email" onblur="checkEmail(this.value);" onkeyup="checkEmail(this.value);" placeholder="{$lang.label_email}">
      </label>
      <span class="t_text">{$lang.label_email}</span>
      <span class="error_icon"></span>
    </div>
    <div class="err_tip" id="email_notice"><em></em> </div>
   
     <!--推荐人-->
    <div class="inputbg">
      <label class="labelbox">
          <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}">
      </label>
      <span class="t_text"> {$lang.label_rec_user}</span>
      <span class="error_icon"></span>
    </div>
    <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;
      }
}
 
大体流程思路就这样,   具体要你自己实际中去修改细节,希望可以帮助到你

时间: 2024-10-08 11:25:24

ecshop注册页面添加推荐人验证的方法总结的相关文章

joomla实现注册用户添加新字段的方法_php实例

本文实例讲述了joomla实现注册用户添加新字段的方法.分享给大家供大家参考,具体如下: joomla原来的注册很简单,为了添加自己想要的字段,比如电话. 在数据库添加这一字段"telphone" 修改libraries\joomla\database\table\user.php 在JTableUser这个类添加新的变量: var $telphone = null; 页面的修改 修改components\com_user\views\register\tmpl\default.php

注册页面之前先验证用户名是否存在的php代码_php实例

reg.php 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-e

ASP.NET中HTML页面的访问验证设置方法_实用技巧

可能有很多朋友和我一样不会留意到这样的问题,在ASP.NET中,使用其自身提供的访问验证功能(表单验证.Passport 验证.Windows 验证),并不会对静态文件(如 html.图像文件.文本文件等)进行访问限制,即使这些文件置于需要验证后才能访问的文件夹下,匿名用户仍然可以访问到这些文件.这是因为静态文件默认是由 IIS 处理,IIS 在接收到对这些文件的请求后,并不会转交给 ASP.NET 处理,所以,在 ASP.NET 中的权限验证失去了作用.换句话说,这些文件不在ASP.NET 的

用javascript为页面添加天气显示实现思路及代码

 为页面添加天气显示的方法有很多,在本文为大家介绍下使用js来轻松实现,具体的代码如下,感兴趣的朋友不要错过 复制代码 代码如下: <%@ page language="java" pageEncoding="UTF-8"%>  <html>  <head>  <script>  function load(cid)  {  var xmlhttp;  if (window.XMLHttpRequest)  {// c

前端-jquery.validate两个页面不能同时验证

问题描述 jquery.validate两个页面不能同时验证 在进入首页登录页面后可以验证,此时点击注册进入注册页面后,第一次提交注册页面表单没有验证,刷新后才有验证. 在注册页面刷新可以验证后,返回登录页面,此时登录页面又无法验证 这是怎么一回事,是两个页面的validate有冲突还是怎么样? 解决方案 jquery.validate验证jquery validate验证jquery.validate 验证 解决方案二: http://bbs.csdn.net/topics/391936372

XP系统使用注册表添加网络身份验证的方法

  在今天的注册表使用教程,我们将给大家分享的是XP系统使用注册表添加网络身份验证的方法.那么,为什么要添加添加网络身份验证呢?打个比方,我们在使用远程桌面连接的时候,如果添加了网络身份验证,将大大提高我们的电脑安全性.那么,XP系统网络身份验证怎么添加呢?一起来了解一下吧! 运行 XP系统网络身份验证添加步骤如下: 第1步:进入Windows XP SP3,运行"regedit"打开注册表编辑器,依次进入"HKEY_LOCAL_MACHINESYSTEMCurrentCon

destoon整合ucenter后注册页面不跳转的解决方法_php实例

通常采用ucenter来做中介,添加多个应用然后使多个站点有同步登录退出的功能. ucenter添加应用并不难,destoon官网上也有相关的教程. 但是很多朋友在几个应用添加完毕以后,注册一个帐号测试的时候,问题就出现了,注册完以后,注册页面没有跳转,也没有提示,但这个会员是注册成功了.为什么没有跳转呢? 经过断点测试发现这是因为在Destoon的api/ucenter/control/user.php 文件中的第83行有一个写Dscuz系统数据库的函数在默认执行:function onreg

Java使用正则表达式对注册页面进行验证功能实现_正则表达式

本文给大家介绍java使用正则表达式对注册页面进行验证的代码,代码如下所示: package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class registered { public static void main(String[] args) { //注册用户 Scanner sc=new Scanner(System.in

Java使用正则表达式对注册页面进行验证功能实现

本文给大家介绍java使用正则表达式对注册页面进行验证的代码,代码如下所示: package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class registered { public static void main(String[] args) { //注册用户 Scanner sc=new Scanner(System.in