session是作用于服务器端的数据,只要种植一次不再刷新其值是不会被改变的,就利用这一点就可以实现阻止用户重复提交数据,具体原理看看下面实现方法一下子就明白啦
1、提交页面
<?php

session_start();
$t=mktime();
$_SESSION['conn_id']=$t;
$_SESSION['conn']=$t;
var_dump($_SESSION);
var_dump($_COOKIE);
?>
<html>
<head>
<title>防止刷新提交或者重新提交</title>
</head>
<body>
<form method="POST"action="get.php">
<span>username:</span><inputtype="text" name="username"id="username"><br>
<input type="hidden" name="hidden"id="hidden" value="<?php echo$_SESSION['conn_id']?>">
<span>message:</span><inputtype="text" name="message"id="message"><br>
<input type="submit"value="submit">
</form>
</body>
</html>
2、服务器端接收页面
<?php
session_start();
$username =$_POST['username']."<br>";
$message =$_POST['message'];
$hide = $_POST['hidden'];
var_dump($_SESSION);
if($hide==$_SESSION['conn'])
{
echo"亲,提交成功了哦";
}else
{
echo"<script>alert('亲!就知道你会刷新提交,stop你已经提交成功啦');</script>";
echo"<script>window.location.href='index.php';</script>";
}
session_destroy();
?>