2013-03-24 28 views
0

你好,我討厭在這裏問愚蠢的問題,所以我希望這不是,我怎麼去限制某人到我的下載頁面?所以如果他們試圖再次訪問該頁面(多於一次)下載一些東西,它只會重定向,或者最好將下載鏈接更改爲link 2,然後Link 3,是否可以在沒有數據庫的情況下進行?如何限制用戶在單個頁面上進行一次訪問?

例如:

  1. 首先訪問 - 主連桿
  2. 二Visit-鏈路2
  3. 第三Visit-連桿3
  4. 4和最多訪問沒有鏈接和重定向

也許用餅乾?我真的不知道該怎麼做,我已經谷歌搜索,但我的措辭不能在那裏...

是否有這個或腳本的名稱?

感謝您的時間夥計們。

+0

您是否嘗試過Cookie? – Mido 2013-03-24 06:17:53

+0

請勿使用cookies。用戶可以刪除任何cookie,使您的「保護」無用。 – 2013-03-24 06:18:28

+0

沒有數據庫,可能很難做到萬無一失,但'$ _ SESSION'變量可能是您最好的選擇。 – anson 2013-03-24 06:25:14

回答

1

A. 實現預期目標的最佳方法是database。創建一個包含兩列的數據庫表:

(1)Page Visitors IP 
(2)The Last Download link used by the visitor to download 
file(contents) from your website. 

B. 您可以用太大的COOKIE的幫助下實現自己的目標。

setcookie("Visitor IP", "Download Link used by the Visitor", $expire); 

每次,遊客訪問您的網站,獲取訪問者IP,並檢查是否$_COOKIE["Visitor IP"]設置與否,如果將其設置,然後更新現有的Cookie否則創建新的。

但是,使用Cookie的是不是一個方便的方法,因爲有可能是在那裏

Browser does NOT Support Cookies. 
    Client alter the Cookies value and use the previous link for download. 

因此,要做到這一點最簡單和優雅的方式是,使用Database的情況。

UPD: * 編寫/設置數據庫有多容易? *

在php中設置/連接到數據庫非常簡單。 請參閱以下內容LINK

編碼也很容易。

- 每當訪問者點擊下載鏈接時,通過POST或GET方法獲取訪客IP($ fetched_IP)。同時獲取鏈接($ URL)的訪問者點擊。

- Query the database [例如:Select DB_IP,LASTLINK從數據庫WHERE DB_IP = $ fetched_IP .....]

- 如果RowCount> 0,則IP ($fetched_IP)存在於數據庫中。檢查$fetched_IP訪問的最後一個鏈接。

- 如果LASTLINK!=$URL,則允許他從$URL下載內容。 Update數據庫表中的LAST_LINK列爲$URL

- 如果rowcount == 0,(New UserInsert包含DB_IP = $ fetched_IP(訪問者IP)和LAST_LINK = $ URL的行。

+0

它是多麼容易編碼/設置數據庫? – Benjamin 2013-03-24 06:55:35

+0

@ user1871802:檢查我的更新(UPD) – 2013-03-24 07:14:11

0

一個簡單的就是使用一個哈希表(關聯數組)。當它們滿足訪問文件的條件時,使用唯一的url作爲鍵和文檔路徑作爲值,將條目添加到散列表中。保存到會話。當他們訪問url時,頁面會檢查網址是否在哈希表中。如果是,則從哈希表中刪除url並傳輸文件。如果你想允許多次使用,你可以存儲一個倒計時變量和URL,它隨着每次訪問而遞減,並且只有當計數爲零時才從哈希表中刪除URL。

相關問題