PHP MySql用户推荐跟踪

PHP MySql用户推荐跟踪,php,mysql,referrals,Php,Mysql,Referrals,我目前正在用PHP、MySql构建一个用户推荐跟踪脚本。按照计划,任何完成注册的用户都将获得一个推荐链接,并且他可以在Facebook和Twitter上分享我的应用程序信息 现在,除非这个用户给我的网站带来至少5个以上的用户,否则他赢了;不允许查看主页 现在,我如何跟踪该用户带来的推荐人数 1.如果我使用$\u HTTP\u referer-在这种情况下,我可以从用户登录到我页面的位置获取链接。如果这是我的推荐链接,那么我可以更新该用户的数据库条目,以及推荐人数+1。但是,$\u HTTP\u推

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


现在,除非这个用户给我的网站带来至少5个以上的用户,否则他赢了;不允许查看主页

现在,我如何跟踪该用户带来的推荐人数

1.如果我使用$\u HTTP\u referer-在这种情况下,我可以从用户登录到我页面的位置获取链接。如果这是我的推荐链接,那么我可以更新该用户的数据库条目,以及推荐人数+1。但是,$\u HTTP\u推荐人有多可靠

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

另外,我应该将推荐信息保存在数据库中。此表的理想表架构应该是什么。我计划了一些类似的事情:
(用户id、用户名、无推荐人、推荐人)。

要获取推荐人,您需要使用
$\u服务器['HTTP\u referer']
。几乎所有的浏览器都会发送一个referer,但这不是强制性的。由于这是一个客户端的东西,用户可以很容易地修改它

我所看到的大多数网站都使用类似这样的方式,在URL中使用一个变量来跟踪原始站点。大概是这样的:


这是否适用于您在很大程度上取决于您打算如何处理这些信息,因为显然有人也可以更改ID。

因为
$\u服务器['HTTP\u REFERER']
存在一些问题(某些浏览器,例如:某些版本中的IE),您不能依赖于此,尤其是对于referel计数器功能,作为一种通用方法。常见的替代方法是通过url发送refereal id,以便您可以使用$\u GET验证refereal。但出于安全考虑,您可能会考虑在url(参考:)中使用加密的id,而不是直接发送。

我也会将ip地址放在表中。“为我的站点带来至少5个用户”-您是指5个注册用户还是5个简单加载站点的用户?您完成了吗?我一直想要类似的东西,但没有时间把它全部写出来@布拉德的回答让我大失所望。最好的做法是使用originaccount设置cookie,这样,如果此人在执行操作时遇到麻烦或花费了一些时间,您仍然可以信任该附属机构。5是一个很低的门槛——任何了解TOR或使用动态dhcp系统的isp的人都可以在很短的时间内用一些虚假的引用来愚弄你。基于某些密码短语的md5哈希加上uniqid(time())也可以。