欢迎来到素材无忧网,按 + 收藏我们
登录 注册 退出 找回密码

ecshop二次开发注册页面添加推荐人验证功能

时间: 2020-09-16 11:06 阅读: 作者:素材无忧网

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

1.前台模板 user_passport.dwt

2.js(jquery实现的)文件 user.js

3.前台 user.php

4. lib_passport.php


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

ecshop二次开发注册页面添加推荐人验证功能

{$lang.label_email}


{$lang.label_rec_user}

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 = ""; //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;
}
}

希望可以帮助到你。

   



版权声明: 本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

转载请注明: ecshop二次开发注册页面添加推荐人验证功能

标签:  
推荐文章
模板推荐