闲来无事看了一下php
session ,又在网上看了防止页面刷新重复提交数据,大部分写的啰啰嗦嗦的,而且大多是一样的COPY过来的连错别字都没有改 像臭婆娘的裹脚布。于是我自己也琢磨了一下,不知道也是不是裹脚布。
这里只说用SESSION 如何实现:
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><input type="text" name="username" id="username"><br>
<input type="hidden" name="hidden" id="hidden" value="<?php echo $_SESSION['conn_id']?>">
<span>message:</span><input type="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();
?>
这里只说用SESSION 如何实现:
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><input type="text" name="username" id="username"><br>
<input type="hidden" name="hidden" id="hidden" value="<?php echo $_SESSION['conn_id']?>">
<span>message:</span><input type="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();
?>