从用户ip中插入数据后,阻塞用户一段时间


block user for sometime after insert a data from his ip

我想在用户向服务器....添加一些数据后阻止他5-10分钟这就像为了安全…在5 ~ 10分钟内,单个用户最多只能插入1次数据。或者如果我插入一些东西,那么调用插入代码的javascript函数将被阻塞5-10分钟…

首先,获取IP的函数:

function get_ip() {
    return trim($_SERVER['REMOTE_ADDR']);
}

其次,我建议你在你的数据库中有一个表,也许叫做user_log…然后记录用户何时添加数据的时间戳。-你可以这样运行一些PHP,下次他们试图…

$ip = ''''.get_ip().'''';
$res = mysql_query('SELECT COUNT(*) FROM `user_log` WHERE (CURRENT_TIMESTAMP - `timestamp`) < 10 AND `ip` = '.$ip.';');
if (mysql_result($res,0) > 0) die('Added data too recently');
// add the data

当用户更新数据时,存储他的IP和点击时间,甚至他的会话。同样,当任何其他用户尝试更新任何数据时,检查数据中的用户url和会话(如果需要)。如果您在数据库中获得IP,则检查时间持续时间,否则将记录插入邮件表中,并在此表中插入另一条记录

如果我理解正确的话。

当用户插入一些数据到数据库时,应该有一个列的时间戳显示数据插入的时间。如果用户试图插入更多的数据,使用DB select,你正在搜索的行是由该用户在过去5分钟插入的。如果存在一行,那么停止所有操作并显示用户错误信息。

没有理由阻止javascript函数。当它对服务器进行ajax回调以尝试添加新数据时,服务器应该执行上述操作并向javascript发送错误消息。

设置cookie的时间为10分钟上的数据提交时间,检查cookie在每次页面刷新时,如果设置页面将不被访问,如果不设置则页面将被访问。