【问题标题】:CakePHP: Single Post Per Day based on IP AddressCakePHP:每天基于 IP 地址的单个帖子
【发布时间】:2013-07-02 14:48:40
【问题描述】:

我仍然掌握 CakePHP 的窍门,但我认为我正在取得进步。

背景:我正在开发一个不需要注册的应用程序。我基本上有任何网站访问者都可以发布的帖子。

问题:如何限制客人每天可以发帖的次数?假设我想让客人每天发帖一次。我是否会根据 IP 创建一个用户表,每次访问该站点时记录一个新的 IP 地址,然后根据该表限制操作?

【问题讨论】:

    标签: php mysql cakephp ip


    【解决方案1】:

    是的……可以,但我不推荐。用户可以通过使用代理或只是重新连接到他们的 ISP 来更改他们的 IP。所以..如果我是你,我基本上不会使用基于 IP 的过滤。

    【讨论】:

      【解决方案2】:

      我要做的是创建一个 .txt 文件来存储用户的 IP,使用 PHP 的 $_SERVER['REMOTE_ADDR']。 24 小时后的 12:00,让您的网络服务器擦除 IP 文件,让每个人都可以在第二天再次发帖。

      【讨论】:

      • 这听起来像是一个优雅的解决方案。加上避免了数据库!感谢您的回复:)
      • @div 没问题 - 我也不是 MySQL 的粉丝 :)
      【解决方案3】:

      取决于您是想让用户 + 访客还是仅访客。

      如果您有用户(登录到该站点,具有个人资料和普通用户将获得的所有内容)并且还允许猜测发布,那么将访客 + ip(或其他过滤选项)添加到用户表和通过 post 表中的 user_id 列将其与 post 表相关联(类似于 SO 中的操作)。

      但是,如果站点中只有访客并且不打算让用户登录,那么您只需要一个带有 ip 列的 post 表,您可以在其中注册哪个 ip 发布了帖子。

      另外,正如 Iansen 所说,IP 过滤器可以轻松绕过。用户每天只发一次帖子是不是很重要?

      【讨论】:

      • 我认为使用 IP 过滤会删除足够多的帖子。我们只有客人,没有用户,限制在每种情况下都起作用并不是非常关键。并感谢您的回复!
      猜你喜欢
      • 2020-02-11
      • 2011-07-26
      • 2017-05-05
      • 2011-08-06
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      相关资源
      最近更新 更多