避免表单重复提交 (加一个口令验证码 类似验证码)
来源:互联网 发布:中央网络空间安全学院 编辑:程序博客网 时间:2024/05/22 05:31
1、在静态提交的页面里, 写一个每次刷新产生一个随机数, 存入session (if(!isset($_session['code'])))。 并放到form表单中,一起提交。
2、在后台提交处理时,判断之前的session里的值是否和提交过的的 input表单的code一样,不一样,则为静态页面又进行了第二次刷新产生了新code。所以和session中不一样。
3、为了不影响下次提交、上传文件使用, 在 判断一样和不一样的同时,将session = null ,保证下一次一样。 可以正常提交。
view
<?php $fileSubmit = mt_rand(0,1000000); if(!isset($_SESSION['filesubmit'])){ $_SESSION['filesubmit'] = $fileSubmit; }?><!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"> <title>数据查询</title> <!--[if lt IE 9]> <script src="{{asset('public/js/html5shiv.js')}}"></script> <![endif]--></head><body style=" overflow-x:scroll; min-width:1600px;" ><form method="POST" action="" enctype="multipart/form-data" class="act"> <input type="hidden" name="fileSubmitCode" value="{{$fileSubmit}}"> <span style="font-family:Helvetica, Tahoma, Arial, sans-serif;">//一同提交到后台 </span> <input type="hidden" name="status" value="{{$status}}"> //设置一个值 ,<span style="font-family:Helvetica, Tahoma, Arial, sans-serif;">可观察是否重新刷新过,(后台给的值, 一样,不一样</span>
Controller
$status = '11';//page翻页$view_page = false;$view_table = false;if($input = Input::all()){//dd($input);if(isset($input['page'])){$view_page = true;}if(isset($input['tableid'])){$tableId = $input['tableid'];$view_table = true;}//dd($tableId);}//die();$file = Input::file('myfile');if(isset($input['fileSubmitCode'])){//dump($input['fileSubmitCode']);//dump($_SESSION['filesubmit']);if($input['fileSubmitCode'] != $_SESSION['filesubmit']){//echo "不相等";$_SESSION['filesubmit'] = null;$status = '0';$file = null; //不相等【即刷新过】 就给<span style="font-family:Helvetica, Tahoma, Arial, sans-serif;">于file为空,认为不是上传,转到别的业务逻辑</span>}else{//echo "相等";$_SESSION['filesubmit'] = null;$status = '1';}}//dd($file);if($file){//dump($file);//$realPath = $file//$path = $file -> move(app_path().'/storage/uploads');$fileSize = round($file->getSize()/1024/1024,2);$realPath = $file->getRealPath();$original_name = $file->getClientOriginalName();$entension = $file -> getClientOriginalExtension(); //上传文件的后缀.
0 0
- 避免表单重复提交 (加一个口令验证码 类似验证码)
- 随机验证码------WEB开发(登录提交 或避免重复提交数据)常用
- 异步提交加表单验证
- Cookie Session 表单重复提交验证 图片验证码登录验证
- 防止表单的重复提交【利用验证码】
- web表单重复提交验证
- Day 12-02 表单的重复提交&验证码重复提交
- 利用HttpSession保存验证码和重复提交表单(案例)
- web路径、表单重复提交(2种方法)、验证码
- 表单无刷新验证加提交
- 关于验证表单重复提交的问题
- Session实现表单重复提交验证
- Token验证表单是否重复提交
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- WdatePicker 前面的日期不能大于后面的日期
- 字符串全排列
- 通过SimpleDateFormat获取相关时间日期信息
- storyboard_创建tableview
- 避免表单重复提交 (加一个口令验证码 类似验证码)
- PHP多文件程序与C++多文件程序执行的一个区别
- unity多渠道sdk打包.
- android app -- 关于listview的几种用法(复用,不复用,半复用)解决item状态改变的问题
- Android 4.0 Launcher源码分析系列(二)
- 基于Windows Socket 的网络通信中的心跳机制原理
- XML解析和安卓单元测试框架
- Android使用intent、bundle传递数据
- 如何给tableviewcell加3D旋转动画