如何在 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 会话变量。


相关文章