我正在为CodeIgniter设计一个电子商务网站的联盟系统,我想知道它的最佳方法是什么。
我希望关联企业能够链接到网站上的每个页面。
理想情况下,联属会员会在我的网站上复制所需的链接,添加一些识别后缀,并将其用作推介链接。
我以为我会指示联盟会员为每个链接添加/ref/ref_id
后缀,然后在我的标题中使用$this->uri->uri_to_assoc(n)
(即 - 在每个页面上),并查找该对{{ 1}}在结果数组中。
问题在于某些页面在uri中具有偶数个段,而其他页面具有奇数个段。
所以,'ref' => 'ref_id'
会产生:
mywebsite.com/item/item_id/ref/ref_id
哪个好。但是array
'item' => 'item_id'
'ref' => 'ref_id'
会产生:
mywebsite.com/aboutus/ref/ref_id
哪个不是很有帮助。
此外,我无法在主页本身(array
'aboutus' => 'ref'
'ref_id' => false
)上使用此语法,因为我找不到404页面,因为我的家庭控制器中没有mywebsite.com/ref/ref_id
功能。
我认为另一个选项是使用查询字符串(ref
),但这似乎不是CodeIgniterish,不是吗?
那么实现这个的最佳方法是什么?
答案 0 :(得分:2)
我曾在CodeIgniter上使用过联盟网站,最简单的事情就是:
http://mywebsite.com/ref/ref_id?url=whateverorthesame.com/aboutus
然后在 controllers / ref.php 中保存基于ref_id
的Cookie(可能希望为此使用路由),并将它们重定向到$this->input->get('url')
。现在你可以神奇地将它们重定向到其他网站了! :)
让他们只需在文本字段中输入网址,并通过ajax:
<script type="text/javascript">
// jQuery dependent
$('input#url').bind('change', function() {
$('div#copy_box').text('<?=base_url()?>ref/<?=$user->id?>?url='+encodeURIComponent($(this).val()));
});
</script>
只需要一个鼓励他们复制生成的字符串的文本。
无需复杂化。