PHP 怎么防止GET方式提交重复数据?
发布网友
发布时间:2022-04-06 01:55
我来回答
共3个回答
热心网友
时间:2022-04-06 03:24
PHP 防止表单重复提交,使用令牌来做验证,即可解决。示例如下:
index.php:
<?php
header("Content-type:text/html;charset=utf-8");
//开启session
session_start();
//如果令牌为空,则生成一个令牌
if(!isset($_SESSION['token'] ) || $_SESSION['token'] == ""){
//给当前表单生成一个令牌
$_SESSION['token'] = md5(microtime(true));
}
?>
<form method="get" action="deal.php">
名称: <input type="text" name="names"><br/>
描述: <input type="text" name="desc"><br/>
<input type="text" name="token" value="<?=$_SESSION['token']?>">
<input type="submit" value="提交">
</form>
deal.php:
<?php
header("Content-type:text/html;charset=utf-8");
//开启session
session_start();
//验证令牌
if($_REQUEST['token'] === $_SESSION['token']){
//表单已经提交,重新生成令牌
$_SESSION['token'] = md5(microtime(true));
echo "表单提交成功:<br/>";
print_r($_REQUEST);
}else{
echo "重复提交";
}
?>
追问我这个是没有submi提交的哦,直接用deal.php吗?
热心网友
时间:2022-04-06 04:42
一种是你先查询判断存不存在在插入。另一种你把某个字段设成唯一键也会防止注入相同东西的。
热心网友
时间:2022-04-06 06:17
先select看数据库中是否存在,然后在执行update等操作