【问题标题】:How to make: "You have 30 form submissions for today"?如何制作:“您今天有 30 份表单提交”?
【发布时间】:2014-04-03 16:46:05
【问题描述】:

我有一个网站,用户每天提交 HTML 表单超过 50 次(大多数用户都这样做)。

我想做的是:让用户每天只有 30 次提交。如果提交超过 30 次,会提示“您的提交次数已达到限制,请在 5h 30m 10s 后重试”。

示例:www.prankdial.com(右上角,它说您有 2 个免费电话。当您使用 2 个免费电话时,它会显示您可以再次拨打的时间)这正是我想要的;但不是 2 次免费通话,我想让它 30 次表单提交。 有可能这样做吗?

我的表单:jsfiddle.net/FEF7D/4/

谢谢,如果您需要有关我的问题的任何其他信息,请在下面发表评论:)

【问题讨论】:

  • 那么你的想法是什么? “有可能吗?” - - 是的。你唯一的问题得到解答了吗?
  • 它非常简单。您只需计算每个用户提交的表单数量。如果超过 30,则添加该语句。怎么做?这完全取决于您的系统。我帮不了你。
  • @zerkms,但我认为 Prankdial.com 拥有非常优秀的程序员,这就是他们创造它的方式,我;我是编程新手 :)
  • 我们不“制造”东西。我们纠正你的试验。 StackOverflow 与您的需求无关,是我们的编程乐趣。
  • @Dorvalla 我认为他本身没有用户,他可能必须限制每个 ip,编辑:实际上他确实说每个用户。

标签: javascript php jquery forms


【解决方案1】:

我不会给你写一个完整的解决方案,但你可以在 php 中获取一个用户 ip:

 //$userip = ($_SERVER['X_FORWARDED_FOR']) ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

编辑:

      $userip = $_SERVER['REMOTE_ADDR'];

并用类似的东西更新数据库记录

$query = "update submits set usercount = (select usercount from submits where user = $user)+1 where userip = '$userip'";

【讨论】:

  • 您的$userip 完全是废话,抱歉。你不能依赖X_FORWARDED_FOR
  • @zerkms 以什么方式?它对我来说很好编辑:好的,有没有更好的解决方案来获取 ip?
  • 以什么方式what?用户可以在X_FORWARDED_FOR 中指定任何内容。获取 IP 的唯一可靠方法是使用$_SERVER['REMOTE_ADDR'](我们谈论的是非反向代理的 Web 服务器)。 PS:当然可以,但是用户可以骗你。
  • X_FORWARDED_FOR 不可靠。用户可以将 ANYTHING 放在那里。你意识到了吗?因此,如果有人想伪造他们的 IP - 您正在为他们提供一种简单的方法。
  • 不,我没有意识到这一点。感谢您的提醒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
相关资源
最近更新 更多