【问题标题】:PHP MySql user referral trackingPHP MySql 用户推荐跟踪
【发布时间】:2011-08-29 14:13:13
【问题描述】:

我目前正致力于在 PHP、MySql 中构建用户推荐跟踪脚本。根据 计划 , 任何 完成 注册 的 用户 都会 获得 推荐 链接 , 并且 他 可以 在 Facebook 和 推特 上 分享 我 的 申请 信息 .

现在,除非该用户为我的网站带来至少 5 个以上的用户,否则他将不被允许查看主页。

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

1.如果我使用 $_HTTP_REFERRER - 在这种情况下,我可以从用户登陆我的页面的位置获取链接。如果这是我的推荐链接,那么我可以更新该用户的数据库条目,以及推荐人数 + 1。但是,$_HTTP_REFERRER 的可靠性如何?

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

另外,我应该将推荐信息保存在数据库中。该表的理想表模式应该是什么。我计划了类似的事情: (user_id,user_name,no_of_referrals,referred_by)。

【问题讨论】:

  • 我也会把 ip-address 放在表中。
  • “为我的网站带来至少 5 个用户” - 您是指 5 个以上的注册用户还是 5 个简单加载网站的用户?
  • 你做过这个吗?我一直想要类似的东西,但没有时间把它全部写出来。 @debaShish

标签: php mysql referrals


【解决方案1】:

要获取引用者,您需要使用$_SERVER['HTTP_REFERER']。几乎所有浏览器都会发送引荐来源网址,但这并不是强制性的。由于这是客户端的事情,因此用户可以轻松地对其进行修改。

我见过的大多数使用这种方法的网站都使用 URL 中的变量来跟踪原始网站。像这样的:

http://www.yoursite.com/someresource?originaccount=12345678

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

【讨论】:

  • 同意布拉德的回答。最佳做法是使用 originaccount# 设置一个 cookie,这样如果该人徘徊或花费一些时间来执行该操作,您仍然可以记入该会员。不过,5 是一个相当低的门槛——任何具有 TOR 工作知识或具有动态 dhcp 系统的 isp 的人都可以在很短的时间内用一些虚假的推荐来欺骗你。
【解决方案2】:

因为$_SERVER['HTTP_REFERER'] 有一些问题(某些浏览器,例如:某些版本的IE),您不能将其作为一种通用方法,特别是对于推荐计数器功能。常见的替代方法是通过 url 发送推荐人 ID,以便您可以使用 $_GET 验证推荐人。但出于安全原因,您可以考虑在您的 url 中使用加密的 id(参考:Mcrypt)而不是直接发送。

【讨论】:

  • 基于某些密码短语与 uniqid(time()) 连接的 md5 哈希也可以。
猜你喜欢
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 2011-06-07
  • 2018-09-06
  • 2011-08-18
  • 2012-04-19
相关资源
最近更新 更多