PHP防止重复提交表单
来源:互联网 发布:无线mac地址修改器 编辑:程序博客网 时间:2024/06/01 09:14
常见的方法:
1:从前端做限制。前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效。
2:我们可以在提交后做redirect页面重定向,即提交后跳转到新的页面,主要避免F5重复提交,但是也有不足之处。
3:就是数据库做唯一索引约束。
4:就是做session令牌验证。
本文简单的利用session token来防止表单重复提交。
代码如下:
<?phpsession_start();header("Content-Type: text/html;charset=utf-8");header('Cache-control: private, must-revalidate'); //支持页面回跳function set_token() { $_SESSION['token'] = md5(microtime(true)); echo " set_token _SESSION = ". $_SESSION['token'] . "<br>";}function valid_token() { $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; echo "valid_token _REQUEST = ". $_REQUEST['token'] . "<br>"; set_token(); return $return;}//如果token为空则生成一个tokenecho " token = ". $_SESSION['token'] . "<br>";if(!isset($_SESSION['token']) || $_SESSION['token']=='') { set_token();}if(isset($_POST['web'])){ if(!valid_token()){ echo "token error,请不要重复提交!"; }else{ echo '成功提交,Value:' . $_POST['web']; }}else{?> <form method="post" action=""> <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>"> <input type="text" class="input" name="web" value="www.baidu.com"> <input type="submit" class="btn" value="提交" /> </form><?php}?>
运行结果如下:
F5刷新当前界面
阅读全文
0 0
- php 防止表单重复提交
- php防止重复提交表单
- php 防止表单重复提交
- php防止表单重复提交
- PHP防止表单重复提交
- PHP防止重复提交表单
- PHP防止重复提交表单
- PHP 防止表单重复提交
- php:如何防止表单重复提交
- 分享防止重复提交表单【php】
- php防止表单的重复提交
- php form表单防止重复提交
- php表单加入Token防止重复提交
- PHP使用session防止表单重复提交
- PHP利用token防止表单重复提交
- PHP利用token防止表单重复提交
- PHP防止重复提交表单的例子
- php表单加入Token防止重复提交
- 如何找到英文文档读懂英文文档
- ZZULIOJ 2135: 这里是天堂!
- Android WebView的前进、后退、与刷新
- 时间格式化
- 解决CC2540 XDATA内存不足
- PHP防止重复提交表单
- java多线程之生产者消费者
- ActiveMQ 的安装与使用(单节点)
- 【BZOJ1076】【SCOI2008】奖励关
- hihocoder1273(dfs)
- 【hadoop入门实战】Mac上安装hadoop,并运行程序(1)
- MyFlag Step5:app页面初步设计与代码编写
- B1021. 个位数统计 (15')
- Project from Version Control--Idea中使用git