php 数据重复提交,php中防止重复提交数据程序代码
时间: 2023-09-10 11:05:58 浏览: 83
php防止form重复提交
4星 · 用户满意度95%
在PHP中防止重复提交数据需要在前端和后端都进行处理。常见的方式是在前端使用JavaScript禁用提交按钮,同时在后端使用session或者token来进行判断是否重复提交。
以下是一个使用session来防止重复提交的示例代码:
```php
session_start();
if(isset($_POST['submit'])){
// 生成一个随机token
$token = md5(uniqid(rand(), true));
// 将token存入session中
$_SESSION['token'] = $token;
// 将token存入隐藏域中
echo '<input type="hidden" name="token" value="'.$token.'">';
}
if(isset($_POST['data']) && isset($_POST['token'])){
// 获取session中保存的token
$session_token = $_SESSION['token'];
// 获取提交的token
$submit_token = $_POST['token'];
// 判断提交的token是否和session中的token相同
if($session_token == $submit_token){
// 处理提交的数据
// ...
// 处理完数据后,将session中保存的token删除
unset($_SESSION['token']);
}else{
// 提示重复提交错误
echo '请勿重复提交数据!';
}
}
```
以上代码中,首先在提交表单的时候生成一个随机token,并将其存入session中和一个隐藏域中。然后在处理表单数据的时候,首先获取session中保存的token和提交的token,并判断它们是否相同。如果相同,则处理表单数据并删除session中保存的token,如果不同则提示重复提交错误。
阅读全文