php 数据重复提交,php中防止重复提交数据程序代码
时间: 2023-09-09 08:14:32 浏览: 41
在 PHP 中防止重复提交数据,可以使用以下程序代码:
```php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!isset($_SESSION['token'])) {
$_SESSION['token'] = md5(uniqid(mt_rand(), true));
}
if (isset($_POST['token']) && $_POST['token'] === $_SESSION['token']) {
// 执行数据提交操作
// ...
// 提交完成后,销毁 token
unset($_SESSION['token']);
} else {
// 提交的 token 与 session 中的不一致,可能是重复提交数据
// 跳转到错误提示页面或其他处理
// ...
}
}
// 在表单中需要添加一个隐藏 input,用于存储 token
echo '<form method="post">';
echo '<input type="hidden" name="token" value="' . $_SESSION['token'] . '">';
// 其他表单元素
echo '</form>';
```
这段代码使用了 PHP 的 Session 机制,生成一个随机的 token,存储在 Session 中,并在表单中添加一个隐藏的 input 元素,用于存储该 token。在数据提交时,首先判断 Session 中是否存在该 token,若不存在则生成一个新的 token;然后判断提交的 token 是否与 Session 中的一致,一致则执行数据提交操作,完成后销毁 token,否则可能是重复提交数据,需要进行相应处理。