PHP MySql 用户推荐追踪

3

我目前正在使用PHP和MySQL构建一个用户推荐跟踪脚本。根据计划,任何完成注册的用户都将获得一个推荐链接,并且可在Facebook和Twitter上分享关于我的应用程序的信息。

现在,除非此用户将至少5个其他用户带到我的网站,否则他将无法查看主页。

那么,我如何跟踪此用户带来的被推荐人数?

1.如果我使用$_HTTP_REFERRER - 在这种情况下,我可以获取用户从哪个链接着陆到我的页面。如果这是我的推荐链接,那么我可以更新该用户的数据库条目以及被推荐人数+1。但是,$_HTTP_REFERRER有多可靠呢?

2.如果我使用cookie进行跟踪:在这里我有些困惑,我是否必须为每个浏览器设置cookie,还是有任何独立于浏览器的cookie设置方法?在设置cookie时,我应该如何保存它,我的意思是我应该只使用推荐ID还是应该使用推荐ID和站点ID(或任何其他组合)。

另外,我应该在数据库中保存推荐信息。这个表的理想模式应该是什么样的?我已经规划了一些内容:

(user_id,user_name,no_of_referrals,referred_by)。


我也会把IP地址放在表格中。 - Johan
“至少为我的网站带来5个以上的用户” - 您是指5个以上的注册用户还是只是简单地加载网站的5个用户? - afuzzyllama
你完成了这个吗?我一直想要类似的东西,但是一直没有时间写完。@debaShish - Tiago
2个回答

5
要获取引荐者信息,您需要使用$_SERVER['HTTP_REFERER']。 几乎所有浏览器都会发送引荐者信息,但并非强制要求。由于这是客户端事务,因此用户可以轻松修改它。
我看到的大多数使用此类方法的网站在URL中使用变量来跟踪来源网站。例如: http://www.yoursite.com/someresource?originaccount=12345678 无论此方法是否适合您高度取决于您打算如何使用该信息,因为显然某些人也可以更改ID。

1
同意Brad的答案。最佳实践是设置一个带有原始账户号的cookie,这样如果人们漫游或花费一定时间执行操作,您仍然可以给予联盟成员信用。不过,5是一个相当低的门槛 - 任何具有TOR工作知识或动态dhcp系统的ISP都可以在很短的时间内用一些虚假的推荐欺骗您。 - gview

0

由于$_SERVER['HTTP_REFERER']存在一些问题(例如某些浏览器,如某些版本的IE),您不能依赖它,特别是对于引荐计数功能而言,作为通用方法。这种情况的常见替代方法是通过URL发送引荐ID,以便您可以使用$_GET验证引荐。但出于安全原因,您可能需要考虑在URL中使用加密ID(参考:Mcrypt),而不是明文发送。


基于某些口令连接 uniqid(time()) 的 md5 哈希同样可以很好地实现。 - gview

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接