2013-07-02 52 views
0

我仍然掌握CakePHP,但我認爲我正在取得進展。CakePHP:基於IP地址的每日單發帖子

背景:我正在開發一個不需要註冊的應用程序。我基本上有任何訪問者可以訪問該網站的帖子。

問:如何限制客人每天可以發帖的次數?假設我想讓客人每天發帖一次。我是否基本上會根據IP創建一個用戶表,在每次訪問該網站時記錄一個新的IP地址,然後根據該表限制操作?

回答

0

我會做的是創建一個.txt文件,存儲用戶的IP,用PHP的$_SERVER['REMOTE_ADDR']。 24小時後,在12:00,讓您的網絡服務器清除IP文件,使每個人都可以在第二天再次發帖。

+0

這聽起來像一個優雅的解決方案。另外避免數據庫!感謝您的迴應:) – div

+0

@div沒問題 - 我不是MySQL的粉絲:) – 2013-07-02 15:12:18

1

是的...這樣做,但我不會推薦它。用戶可以通過使用代理或僅重新連接到他們的ISP來更改他們的IP。所以..基本上我不會使用基於IP的過濾,如果我是你。

+0

當然,cookie /會話過濾也相同。 – mark

0

取決於您是否想要用戶+訪客或訪客。

如果您有用戶(登錄到網站,包含配置文件以及普通用戶將獲得的所有內容),並且還允許猜測發佈,那麼向用戶表中添加guest + ip(或其他過濾選項)會更容易並通過發佈表中的user_id列將其與帖子表相關聯(在SO中完成的類型)。

但是,如果網站上只有訪客,並且它不打算記錄用戶,那麼您只需要一個帶有ip列的發佈表,您可以在其中註冊哪個ip發佈了該帖子。另外,正如Iansen所說,IP過濾器可以輕鬆繞過。用戶每天只發布一次是否是強有力的必要條件?

+0

我認爲使用IP過濾會削減足夠的帖子。我們只有客人,沒有用戶,並且限制在每種情況下工作都不是很關鍵。並感謝您的迴應! – div