PHP如何防止重复POST?

代码大致如下

session_start();
if (!empty($_SESSION['state']) || $_SESSION['state'] == 1) {
    exit('已提交过');
}
$_SESSION['state'] = 1;
session_commit();

/* 此处模拟数据库插入 */
sleep(3);

unset($_SESSION['state']);
exit('提交完毕');

作为一个接口, 直接post
但如果用软件连续提交10次Post
都是显示提交完毕
如何只有在数据库插入完毕后才能再次提交

把php文件设置文件编码,设置为UTF8,试下那

PHP生成表单时设置一个token隐藏域,提交后JS则可以辅助把提交按钮设为不可点击。
可以参考https://www.fffmo.com/1742.html

如果要防止客户端用程序恶意刷,这个只能用图形验证码+session间隔时间来防范了。
因为作为程序,识别验证码比较困难,同时每个session,每个用户限制提交次数,就断绝了这个用户大量提交的可能性。