2011-08-29 91 views
3

我目前正在PHP,MySql中構建用戶引薦跟蹤腳本。根據該計劃,任何完成註冊的用戶都將獲得推薦鏈接,以及他可以在Facebook和Twitter上分享我的應用程序的相關信息。PHP MySql用戶引薦跟蹤

現在,直到這個用戶帶來至少5個用戶到我的網站,他贏了;不允許查看主頁。

現在,我該如何跟蹤該用戶帶來的被介紹人的數量?

1.如果我使用$ _HTTP_REFERRER - 在這種情況下,我可以從用戶登陸到我的頁面的鏈接中獲取鏈接。如果這是我的推薦鏈接,那麼我可以更新此用戶的數據庫條目,並且推薦人員數量爲1.但是,$ _HTTP_REFERRER有多可靠?

2.如果我用來跟蹤cookie:在這裏我有點困惑,我是否必須爲每個瀏覽器設置cookie,或者是否有任何瀏覽器獨立的Cookie設置方法?在設置Cookie時,我應該如何保存它,我的意思是我應該只使用引薦ID,還是應該使用引薦ID和site_id(或任何其他組合)的組合。

另外,我應該將推薦信息保存在數據庫中。該表應該是什麼理想的表模式。我已計劃如下: (user_id,user_name,no_of_refers,referenced_by)。

+0

我會把ip地址放在表中。 – Johan

+0

「爲我的網站帶來至少5個用戶」 - 您是指5個以上的註冊用戶或5個簡單加載網站的用戶? – afuzzyllama

+0

你有沒有做到這一點?我一直想要類似的東西,但沒有時間寫完。 @debaShish – Tiago

回答

5

要獲得引薦者,您要使用$_SERVER['HTTP_REFERER']。幾乎所有的瀏覽器都會發送一個引用者,但這並不是強制的。由於這是客戶端的事情,用戶可以很容易地修改它。

我見過的大多數網站都使用這樣的東西,在URL中使用變量來跟蹤原始網站。事情是這樣的:

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

這是否對你的作品在很大程度上取決於你打算做處理這些信息,因爲很顯然有人可以改變ID以及什麼。

+1

同意Brad的回答。最佳做法是設置一個cookie與originaccount#,這樣如果該人徘徊或需要一些時間來執行該操作,您仍然可以信任該聯屬機構。 5是一個相當低的標準,但是 - 任何擁有TOR或具有動態dhcp系統的isp的人都可以在很短的時間內用一些僞造的referals來欺騙你。 – gview

0

因爲$_SERVER['HTTP_REFERER']有一些問題(某些瀏覽器,例如:某些版本的IE),您不能依賴這一點,特別是作爲通用方法的referal counter功能。常見的替代方法是通過URL發送referal id,以便使用$ _GET驗證referal。但出於安全原因,你可能會考慮在你的url中使用加密的id(參考:Mcrypt),而不是簡單地發送它。

+0

基於某些與uniqid(time())連接的密碼短語的md5散列也可以。 – gview