南头网站建设|深圳南头网站建设公司|南头网站制作|南山南头网站设计
一直希望shopex能有个让会员通过自己的推广链接推广网站获得积分的功能 但是等了n久也等不来, 只能自力更生了。
首先想到的是和discuz论坛整合后同步shopex积分的做法, 但是 实际试验这个方法不行,因为每次会员登陆shopex 的时候都自动覆盖DISCUZ的相应积分数据, 也就是说这种积分同步是单向的。
于是又用回了以前用是phpwind, 在phpwind的会员推广功能上想办法,终于搞定。
有兴趣的可以到我们站试验一下 通过我的推广链接进入吧:http://www.beleos.cn/bbs/index.php?a=beleos
phpwind 的推广链接是这个样子的 : http://www.beleos.cn/bbs/index.php?a=beleos 所以要在index.php中找到增加积分的代码,查看 index.php中的包含文件 最终在global.php中 发现了接收变量 a 的代码:
在第200行左右 原代码如下 :
///////////////////////////////////////////////////////////////////////////////////////////////
if ($db_ads && !$windid && (is_numeric($_GET['u']) || ($_GET['a'] && strlen($_GET['a'])<16)) && strpos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST'])===false) {
InitGP(array('u','a'));
Cookie('userads',"$u\t$a\t".md5($_SERVER['HTTP_REFERER']));
} elseif (GetCookie('userads') && $db_ads=='1') {
list($u,$a) = explode("\t",GetCookie('userads'));
if ((int)$u>0 || ($a && strlen($a)<16)) {
require_once(R_P.'require/userads.php'); //调用增加积分的文件
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
吧这部分代码改成如下:
///////////////////////////////////////////////////////////////////////////////////////////////
if ($db_ads && !$windid && (is_numeric($_GET['u']) || ($_GET['a'] && strlen($_GET['a'])<16)) && strpos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST'])===false) {
InitGP(array('u','a'));
Cookie('userads',"$u\t$a\t".md5($_SERVER['HTTP_REFERER']));
GetCookie('userads');
list($u,$a) = explode("\t",GetCookie('userads'));
if ((int)$u>0 || ($a && strlen($a)<16)) {
require_once(R_P.'require/userads.php'); //调用增加积分的文件
}
Header("Location: http://www.beleos.cn/");
}
///////////////////////////////////////////////////////////////////////////////////////////////
然后打开 require/userads.php 文件 全部代码改成如下:
==============================================================
!function_exists('readover') && exit('Forbidden');
PwNewDB();
$a_sql = $u ? "uid='$u'" : "username='$a'";
$u_db = $db->get_one("SELECT uid AS u FROM pw_members WHERE $a_sql");// UB
if ($u_db) {
$u = $u_db['u'];
$u_db = $db->get_one("SELECT adsips FROM pw_memberinfo WHERE uid='$u'");
if ($u_db) {
$u_db['adsips'] = strlen($u_db['adsips']) > 15000 ? '' : $u_db['adsips']."\t";
if (strpos("\t".$u_db['adsips']."\t","\t".$onlineip."\t")===false) {
$db->update("UPDATE pw_memberinfo SET adsips='$u_db[adsips]$onlineip' WHERE uid='$u'");
$db->update("UPDATE pw_memberdata SET credit=credit+1 WHERE uid='$u'");
////////////////////////////////////
if ($a!="")
{
$shopex_server_name="localhost"; //数据库服务器名称
$shopex_username="XXXXX"; // 连接数据库用户名
$shopex_password="XXXXX"; // 连接数据库密码
$shopex_database="XXXXX"; // 数据库的名字
$shopex_qianzhui="XXXXXXX"; // 表前缀
// 连接到数据库
$shopex_conn=mysql_connect($shopex_server_name, $shopex_username,$shopex_password);
// 从表中提取信息的sql语句
$strsql="select member_id AS u from shopex_members WHERE uname='$a'"; //根据用户名查询用户ID
// 执行sql查询
$result=mysql_db_query($shopex_database, $strsql, $shopex_conn);
$u=mysql_result($result,0);
$strsql="UPDATE shopex_members SET point=point+1 WHERE member_id=".$u; // 修改用户积分
$result=mysql_db_query($shopex_database, $strsql, $shopex_conn);
$strsql="INSERT INTO shopex_point_history(member_id,point,time,reason,type,operator) VALUES('$u',1,1243695404,'phpwind',10,'phpwind') ON DUPLICATE KEY UPDATE point=point+1"; // 修改用户积分历史
$result=mysql_db_query($shopex_database, $strsql, $shopex_conn);
// 关闭连接
mysql_free_result($result);
mysql_close($shopex_conn);
};
///////////////////////////////////
}
} else {
$db->update("INSERT INTO pw_memberinfo(uid,adsips) VALUES('$u','$onlineip')");
$db->update("UPDATE pw_memberdata SET credit=credit+1 WHERE uid='$u'");
////////////////////////////////////
if ($a!="")
{
$shopex_server_name="localhost"; //数据库服务器名称
$shopex_username="XXXXX"; // 连接数据库用户名
$shopex_password="XXXXX"; // 连接数据库密码
$shopex_database="XXXXX"; // 数据库的名字
$shopex_qianzhui="XXXXXXX"; // 表前缀
// 连接到数据库
$shopex_conn=mysql_connect($shopex_server_name, $shopex_username,$shopex_password);
// 从表中提取信息的sql语句
$strsql="select member_id AS u from shopex_members WHERE uname='$a'";
// 执行sql查询
$result=mysql_db_query($shopex_database, $strsql, $shopex_conn);
$u=mysql_result($result,0);
$strsql="UPDATE shopex_members SET point=point+1 WHERE member_id=".$u;
$result=mysql_db_query($shopex_database, $strsql, $shopex_conn);
$strsql="INSERT INTO shopex_point_history(member_id,point,time,reason,type,operator) VALUES('$u',1,1243695404,'phpwind',10,'phpwind') ON DUPLICATE KEY UPDATE point=point+1";
$result=mysql_db_query($shopex_database, $strsql, $shopex_conn);
// 关闭连接
mysql_free_result($result);
mysql_close($shopex_conn);
};
///////////////////////////////////
}
}
Cookie('userads','',0);
Header("Location: http://www.beleos.cn/");
?>
=================================require/userads.php 文件结束========================================
到此为止现在用户已经可以通过连接推广获得积分了。 本人业余编程, 有什么不足之处请高手指点, 修改代码前请注意备份,造成损失本人不负责哦。
另外就是会员中心中 显示会员的推广链接了修改文件为shopex目录下: /core/shop/view/member/index.html
[ 此帖被beleos在2009-06-06 13:09重新编辑 ]
评价一下你浏览此帖子的感受
精彩
感动
搞笑
开心
愤怒
灌水
暗香博客-shopex经验分享、解惑、答疑