Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制每个用户的表单提交率_Php_Database_Forms_Api_Throttling - Fatal编程技术网

Php 如何限制每个用户的表单提交率

Php 如何限制每个用户的表单提交率,php,database,forms,api,throttling,Php,Database,Forms,Api,Throttling,我试图将表单的提交速率限制为每120秒一个用户提交一次 我正在考虑使用一个$\u SESSION变量,但我不确定该如何工作,可以直接删除cookie。我猜一个$\u会话变量可以由一个直观的用户通过注销并返回来处理 我现在只是在理论上,所以我没有代码 我该如何解决我的问题 编辑-- 用户经常查询的原因是因为它是一个项目和动物数据库。我需要将用户查询速度降低到可接受的速度,因为超过每分钟10次查询的速度,否则应用程序可能会被“禁止”或拒绝大约一个小时。$\u SESSION和$\u COOKIE变量

我试图将
表单的
提交速率限制为每120秒一个用户提交一次

我正在考虑使用一个
$\u SESSION
变量,但我不确定该如何工作,可以直接删除cookie。我猜一个
$\u会话
变量可以由一个直观的用户通过
注销
并返回来处理

我现在只是在理论上,所以我没有代码

我该如何解决我的问题

编辑--


用户经常查询的原因是因为它是一个项目和动物数据库。我需要将用户查询速度降低到可接受的速度,因为超过每分钟10次查询的速度,否则应用程序可能会被“禁止”或拒绝大约一个小时。

$\u SESSION
$\u COOKIE
变量可能会被用户删除,并因此被滥用。您需要将提交存储在服务器上的某个位置。也许是MySQL。然后在处理表单之前进行检查

差不多

SELECT COUNT(*) attempts, MAX(submit_time) last
FROM form_submits
WHERE user_id = ?
AND submit_time > NOW - INTERVAL 2 MINUTE
然后


$\u会话
$\u COOKIE
变量可能会被用户删除,因此会被用户滥用。您需要将提交存储在服务器上的某个位置。也许是MySQL。然后在处理表单之前进行检查

差不多

SELECT COUNT(*) attempts, MAX(submit_time) last
FROM form_submits
WHERE user_id = ?
AND submit_time > NOW - INTERVAL 2 MINUTE
然后


在提交时将其IP存储到表中,并在1小时后过期。如果记录数量超过5,则不允许提交表格。嗯,这可能有效。有趣的工作。谢谢分享!一般来说,这个问题没有解决办法。您需要提供更多的上下文,比如用户是否经过身份验证?为什么用户经常提交?为什么这会对你的申请造成问题?(像cookies一样,用户也可以轻松地更改其IP地址)添加信息Hakre,一分钟。在提交时将其IP存储到表中,过期1小时。如果记录数量超过5,则不允许提交表格。嗯,这可能有效。有趣的工作。谢谢分享!一般来说,这个问题没有解决办法。您需要提供更多的上下文,比如用户是否经过身份验证?为什么用户经常提交?为什么这会对你的申请造成问题?(和cookies一样,用户也可以轻松更改其IP地址)添加信息Hakre,一分钟。