2010-08-13 47 views
1

我剛剛開始使用PHP。我目前正在建立一個網站,允許匿名用戶每天觀看十次圖片。任何查看的圖像都會增加計數器,並且會多次查看某個圖像。除非註冊,否則不允許每天查看櫃檯限額。用於查看圖像的匿名用戶計數器

想知道爲了使這成爲可能,我可以怎樣處理會話和數據庫。另外,如何每24小時重置一次計數器?

示例代碼將不勝感激。謝謝。

順便說一句,我使用的Kohana 3

回答

4

如果您使用會話,那麼就爲人們避開它一個簡單的方法 - 禁用cookie。

您可以將其基於IP地址,但您必須注意,多個人有時可能擁有相同的IP,而一個人可能擁有多個IP。所以你必須保守你拒絕的東西 - 你不希望拒絕同一個IP訪問一次只有十次的東西。

因此,如果你不想強迫人們註冊/登錄(即使你必須考慮多次註冊的人),也沒有超可靠的方法來做你想做的事情。

我可能會考慮通過IP限制它,爲每個包含日期和用戶IP的視圖在數據庫中放入一行,如果該行存在,則增加第三列。一旦該列達到100,就禁止訪問。第二天,它會全部被重置,因爲你的日期列現在不同。

您也可以考慮將規則放入robots.txt中,以防止聲名狼借搜索引擎等攫取圖像的「緩存」副本。

+0

很好放!達到極限後,他們也可以清除那裏的餅乾。只是增加你所說的。 – Iznogood 2010-08-13 01:59:47