表单重复提交的可行办法
01 服务端:在 session 中存放一个特殊标志
当表单页面被请求时,生成一个特殊的字符标志串,存在 session/redis 中,同时放在表单的页面里。接受处理表单数据时,检查标识字串是否存在,并立即从 session 中删除它,然后正常处理数据。如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。
02 客户端:使用Cookie处理
使用Cookie记录表单提交的状态,根据其状态可以检查是否已经提交表单。
03 数据库:在数据库里添加约束
添加唯一索引约束
以上三种可以结合一块使用。