十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在表单页面设置一个隐藏域,尽量让隐藏域的值不重复,例如在表单页面form.php中设置隐藏域hashCode,并让hashCode的值为当前的时间戳:
网站设计制作、做网站的关注点不是能为您做些什么网站,而是怎么做网站,有没有做好网站,给创新互联公司一个展示的机会来证明自己,这并不会花费您太多时间,或许会给您带来新的灵感和惊喜。面向用户友好,注重用户体验,一切以用户为中心。
form name="form1" action="form_action.php" method="post"
input type="hidden" name="hashCode" value="?php echo time()?"/
/form
在表单处理页面form_action.php接收隐藏域hashCode的值,判断是否存在$_SESSION['ACTION']或者$_SESSION['ACTION']的值是否等于表单提交的hashCode的值,如果相等为重复提交数据。
?php
session_start();
$hashCode =trim($_POST['hashCode']);
if(!isset($_SESSION['ACTION'])||$_SESSION['ACTION']!=$hashCode){
//新提交数据,入库操作
$_SESSION['ACTION'] =$hashCode;//标记操作完成
}else{
echo '请勿重复提交数据';
exit();
}
?
有两种实现方法:
1、你可以用PHP服务器推技术,当数据发生变化时,主动推送到页面显示。相关技术可以参考文档。百度也很多。
2、你可以用Javascript,每过一秒钟,使用Ajax获取数据,一秒钟刷新一次,也可以实现的。
第一种我也不会。第二种相信你可以的。
while的话是循环,你用了只会一行行加
可以采用ajax配合使用php可以防止刷新页面重复提交
也可以使用框架同样可以防止
你直接访问数据处理页面的时候,$_POST['title'],$_POST['num] 应该是空值,所以你增加一个判断,必须有具体的值,再进行sql操作。