2010-01-27 74 views
0

我有一个基于PHP的网站,使用优惠券代码。我可以限制搜索引擎查找优惠券代码的登录页面(例如,如果它是另一页上的广告)。如何仅允许来自特定域的访问者?

但我也想限制优惠券代码,以便它只在来自提供优惠券代码的网站时起作用。这样,如果有人找到了代码,他们就不能将它发布到博客上。诚然,优惠券代码变得病毒式传播是一件好事,但我们需要限制它进行市场分析。

因此,如果我在www.examplead.com上放置广告,并且有人通过点击广告来到我们的网站,我想允许优惠券代码正常工作。如果他们来自www.exampleblog.com或www.examplead.com以外的任何其他网站,我不想让优惠券代码正常工作。

我不需要编写禁用/启用优惠券代码的帮助,但我需要帮助来筛选某人来自哪里,然后执行基于此功能的功能。

如果其他人有更好的方法来跟踪优惠券代码,请让我知道。

回答

2

最简单的方法是检查$_SERVER['HTTP_REFERER']的值。它可以伪造,但它不需要对方做任何事情。

+0

是的,推荐人几乎是唯一的方法。如果你公开地在互联网上放置了某些东西(即不是登录后面的东西),那么你就不能真正阻止人们链接到它。引荐者检查至少使其不太容易。 – 2010-01-27 21:01:24

1

我也会尝试对$_SERVER['HTTP_REFERER']进行验证。如果你需要比这更强大的东西,我可能会建立一个联盟系统,其中一个密钥通过与系统中特定联盟帐户相对应的URL传递,因此您可以知道哪些联盟会兑换哪些代码。 (并记录引荐来源域名,以便您可以检测到伪造品或附属公司是否滥用其代码)。

您可能需要小心的一件事是惩罚使用优惠券代码可能开始但未完成交易的用户,稍后再回来(但不通过推荐人)。您可能只想在他们通过引荐来访者访问后的任何时候将其帐户标记为可用于使用该代码。

+0

是的,我们不使用帐户,一切都以客人身份处理。但我们可以使用cookie。 – Jared 2010-01-27 21:44:25

0

您可以创建一个动态散列,每天更改并将其附加到该页面的链接。如果该散列丢失或不正确,您可以选择不显示优惠券代码。哈希可以是使用链接网站(salt)的唯一标识符加上像日期那样的动态标识符生成的(尽管如果服务器时间断开任何时间,这可能是有问题的,因此我建议使用替代值)。通过每天更改此值可防止任何人共享链接。最糟糕的是,它在24小时内“无所事事”才会失效。

你可以使用$_SERVER['HTTP_REFERER']来扩充这个系统,但是,由于上述原因它不可靠,你不会依赖它。

+0

这是一个非常好的主意!虽然使用第三方网站时很难实施,对吧? – Jared 2010-01-27 21:47:44

+0

如果你找不到某个变量来做你的散列,这只是一个棘手的问题。上面提到了使用日期的问题。但是,如果你能够按照既定的时间表找到某些变化,那么你可以在两个站点上使用它来制作你的哈希。它也是语言不可知的,所以它们用来为网站提供动力并不重要。 – 2010-01-27 23:18:07

相关问题