如何在 PHP 中防止提交表单时出现重复插入?
phpserver side programmingprogramming更新于 2025/6/27 13:07:17
PHP 会话可用于防止提交表单时出现重复插入。PHP 会话会设置一个会话变量(例如 $_SESSION['posttimer']),用于设置 POST 请求的当前时间戳。在 PHP 处理表单之前,会检查 $_SESSION['posttimer'] 变量是否存在,并检查其是否存在特定的时间戳差异(例如 2 或 3 秒)。这样,就可以识别并删除那些重复的插入操作。
简单表单 −
// form.html <form action="my_session_file.php" method="post"> <input type="text" name="bar" /> <input type="submit" value="Save> </form>
上面对 ‘my_session_file.php’ 的引用将包含以下代码行 −
示例
if (isset($_POST) && !empty($_POST)) {
if (isset($_SESSION['posttimer'])) {
if ( (time() - $_SESSION['posttimer']) <= 2) {
// 距离上次发帖时间少于 2 秒
} else {
// 距离上次发帖时间超过 2 秒
}
}
$_SESSION['posttimer'] = time();
}
输出
将产生以下输出 −
The unique form submitted data.
设置 posttimer 会话变量,如果距离上次 POST 操作的时间差不超过 2 秒,则可以将其移除。否则,该变量将被存储。调用 time 函数,并将值赋给 posttimer 会话变量。

