第一步,创建表,DDL如下:
CREATE TABLE ip_limit ( id int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id', ip char(16) NOT NULL DEFAULT '0' COMMENT 'ip地址', form_id int(11) NOT NULL DEFAULT '0' COMMENT '表单id', last_submit_time int(11) NOT NULL DEFAULT '0' COMMENT '上次提交表单时间', success_submit_times int(11) NOT NULL DEFAULT '0' COMMENT '成功提交次数', PRIMARY KEY ( id ) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第二步,需求逻辑,描述如下:
当用户进行第一次提交时,插入一条记录到ip_limit表,并记住ip,form_id,last_submit_time,success_submit_times等字段信息,当用户进行更多次提交时,先查询对应ip对于指定form_id的last_submit_time,如果current_time
–
last_submit_time>2*3600,就更新last_submit_time,success_submit_times字段信息,否则提示相关限制信息。
如何实现同一IP提交表单的次数限制?:等您坐沙发呢!