提交表单时,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) { // less then 2 seconds since last post } else { // more than 2 seconds since last post } } $_SESSION['posttimer'] = time(); }
输出结果
这将产生以下输出-
The unique form submitted data.
设置了posttimer会话变量,并且在上一次POST操作之前有2秒或更短的时间差时,可以将其删除。否则将被存储。调用时间函数,并将值分配给后定时器会话变量。