2010-01-27 88 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

相關問題