网站地图    收藏   

主页 > 后端 > php资料库 >

在php使用隐藏字段和uniqid来实现表单的重复提交

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 在php中,最简单,也是做常用的放发来放置表单重复提交的方法就是设置隐藏域的来实现,在php有一个uniqid();函数,他可以生成唯一的标示符,这样我们就可以通过判断这个标示符来判...

在php中,最简单,也是做常用的放发来放置表单重复提交的方法就是设置隐藏域的来实现,在php有一个uniqid();函数,他可以生成唯一的标示符,这样我们就可以通过判断这个标示符来判断表单是不是处于重复提交的状态。

在php使用隐藏字段和uniqid来实现表单的重复提交
在php使用隐藏字段和uniqid来实现表单的重复提交
 

基本的实现是,这样的:

1.建立一个数据提交的文件

在这个文件里面就是一个表单元素,只是里面多了一个隐藏域,查看代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<form action="post.php" method="post">
<input type="hidden" name="uuid" value="<?php echo uniqid();?>"/>
<input type="text" name="test"/>
<input type="submit""/>
</form>
</center>
</body>
</html>
2.建立form表单的接受文件post.php

建立一个表单的接受文件,并且在里面进行验证,用户的数据是不是重复提交的,验证的方法就是通过session来实现,就是把数据文件传来的唯一标示符存入到session里面,这样在存入数据之前,先判断该session是不是有内容,如果没有内容或者有的内容和传来的id不是相同的话,就可以讲数据存到数据库,否则就提示数据重复提交了!~

实现代码:

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<?php
$uuid=$_POST['uuid'];
$olduuid=$_SESSION['uuid'];
$name=$_POST['test'];
if($olduuid==""||$olduuid!=$uuid){
echo "<font color='green'>提交成功,提交多的内容是:--></font>".$name;
$_SESSION['uuid']=$uuid;
}else{
echo "<font color='red' size='50'>已经提交数据了,<br/>不可重复提交</font>";
}
?>
</center>
</body>
</html>

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论