精华内容
下载资源
问答
  • PHP联系表单随机提交

    2012-10-10 02:53:54
    <p>I hope I'm missing something pretty basic here but: An empty form is getting submitted randomly, sometimes 3-8 times a day, then none for a few days and so on.... ... there is no way for a human to ...
  • <p>im using Drupal, <p>im comparing two fields, when the fields are true I want the form being viewed to submit, but by a different user to the one viewing the form. <p>I get list of users by ...
  • JavaScript随机设置表单的发送地址,可以设置多个表单提交的地址,平时不怎么用,不过这个功能觉得以后能用上哦,大家没事了还是研究一下埃
  • <p>I want to insert random password in database when I submit a form without password input field. ... <pre><code>protected $fillable = [ 'email', 'firstname', 'lastname' ...public function ...
  • 表单重复提交

    2018-08-24 10:28:34
    - 表单提交时,服务器程序客户机带过来的随机值和session域中保存的随机值是否一致,如果一致则允许提交,否则认为是重复提交。 使用struts防止表单重复提交 Struts的标签除了可以生成标签、协助其它html标签...

    防止表单重复提交的原理

    表单应由一个程序产生,程序在产生表单时:
    - 生成一个随机值,并附在表单的一个隐藏输入项中。
    把随机值存储在session域中。
    - 表单在提交时,服务器程序客户机带过来的随机值和session域中保存的随机值是否一致,如果一致则允许提交,否则认为是重复提交。

    使用struts防止表单重复提交

    Struts的标签除了可以生成标签、协助其它html标签完成数据回显外,它还提供了防止表单重复提交的功能。
    - 标签在生成表单时,会检查session域中是否存在token,如果存在则自动使用token生成隐藏字段。
    - Struts为方便开发人员生成token,在action中提供了saveToken方法,调用这个方法就可以在session域中保存一个token。
    - Struts为方便开发人员在action中校验用户是否为重复提交,因此它在action中也提供了isTokenValid方法,该方法会自动判断表单是否为重复提交。

    防表单重复提交在struts中的做法:

    1. 用户先访问Action,Action中调用saveToken方法,然后派发到表单页面。
    2. 在表单页面中使用标签, 标签会自动为表单生成一个带随机值的隐藏字段。
    3. 在表单提交的Action中调用isTokenValid方法,就可以判断出表单是否为重复提交,从而可以根据情况决定如何处理。 isTokenValid方法返回true,则为允许提交,处理提交后,要记得调用reset清除token。
    if(!isTokenValid(request, true)){
                System.out.println("重复提交");
                return null;
            }

    -

    -

    -

    -

    -

      -
    展开全文
  • 表单重复提交问题

    2021-06-11 21:38:24
    表单重复提交的情况有大致如下几种: ...1、JSP页面生成一个随机值,作为表单唯一id,将这个唯一值放置在Session中,随便在表单中搞一个隐藏域存放这个值,提交表单时,将表单数据和这个唯一值一起提交
    表单重复提交的情况有大致如下几种:
    1. 用户重复点击提交按钮(异步请求)
    2. 网络不好,导致用户以为没有点击,所以重复点击了提交(同步请求,转发导致)
    3. 用户提交表单,转发到另一个页面,然后点击刷新导致重复提交(同步请求,转发导致)
    4. 用户提交表单,转发到另一个页面,然后点击浏览器返回上一步,接着继续提交表单(同步请求,转发导致)
    解决方案:

    同步请求:
    1、JSP页面生成一个随机值,作为表单唯一id,将这个唯一值放置在Session中,随便在表单中搞一个隐藏域存放这个值,提交表单时,将表单数据和这个唯一值一起提交到后台,然后在后台获取session中保存的唯一值,将后台的session值和前端表单传递过来的唯一值进行比较:

    • 前端唯一值id == 后台唯一值id 表示:第一次表单提交,然后把后台中的session值删除,转发到某个页面。
    • 前端唯一值id != 后台唯一值id 表示:重复提交的表单,可以重定向到某个页面。

    异步请求:
    1、大概思路:在前端生成一个随机值,然后传递到后台去,后台使用Aop进行拦截,将随机值作为key,请求数据作为value,存放在redis中,并设置过期时间。aop拦截使用可以自定义一个注解,加载controller方法上。当用户重复点击提交按钮时,会拦截标注了自定义注解的方法,进入aop拦截方法,在环绕通知中进行判断,是否在redis中存在该key,如果存在表示重复提交则返回或者返回原来的数据,不存在则设置进去,并设置过期时间,过期时间可控,在自定义注解中可以自定义方法获取过期时间。
    2、发送请求后,使用js将按钮隐藏,或者设置按钮倒计时可以点击。

    github:xxx

    展开全文
  • 在from表单提交的时候,用户... 其实可以在提交的时候就可以解决这个问题,在数据库添加一个字段,每次提交上去的时候去随机修改这个字段,每次在提交操作之前去比对这个值,如果相同就允许提交,不同就不允许表单提交

        在from表单提交的时候,用户网络或者设备原因,有时候会导致表单的重复提交,如果数据库没有做好防范的话,容易产生不需要的数据记录。

     其实可以在提交的时候就可以解决这个问题,在数据库添加一个字段,每次提交上去的时候去随机修改这个字段,每次在提交操作之前去比对这个值,如果相同就允许提交,不同就不允许表单提交

    展开全文
  • php 刷新提交表单问题

    2018-09-09 14:45:40
    表单里生成一个token(随机字符串),然后用个input装起来,设置hidden。第一次post处理完数据后把token存入session,接下来每次post判断一下token跟session中的一不一样,一样则说明数据处理过了。 &lt;?php ...

    https://blog.csdn.net/u012466451/article/details/68952280

    在表单里生成一个token(随机字符串),然后用个input装起来,设置hidden。第一次post处理完数据后把token存入session,接下来每次post判断一下token跟session中的一不一样,一样则说明数据处理过了。

    <?php

    session_start();

     

    //读取服务器端的session_id,如果没有的话赋值为-1

    $session_id = empty($_SESSION['session_id']) ? -1 : $_SESSION['session_id'];

     

    //读取客户端的post_id,如果没有的话赋值为-2

    $post_id = empty($_POST['post_id']) ? -2 : $_POST['post_id'];

     

    //判断两个id是否相同,相同则说明已经处理过一次,不同则进行处理

    if($session_id == $post_id){

     

    echo "<h1>已经处理过了,不管了</h1>";

     

    }else{

     

    //如果页面还没有提交过表单,则显示表单,否则处理post过来的数据

    if($post_id == -2){

    ?>

    <html>

    <body>

    <form action="index.php" method="post">

    <input type="text" hidden="hidden" name="post_id" id="" value="<?php echo rand(1, 999999); ?>" />

    <input type="text" name="test" id="test" value="" />

    <input type="submit" value=""/>

    </form>

    </body>

    </html>

    <?php

    }else{

     

    echo "<h1>正在处理</h1>";

     

    //处理过后吧post_id存入session,方便下次比较

    $_SESSION['session_id'] = $post_id;

     

    }

     

    }

    ?>

    展开全文
  • ... <p>However I have the problem that when I reload the page by submitting the values from the forms my randomised values change and the answers are always wrong. I have looked and found the ...
  • 防止刷新或后退页面重复提交表单

    千次阅读 2017-11-06 17:56:08
    刷新或后退页面会引起重复提交表单,为了避免这个头疼的问题发生,有几种方法可以实现。网上已经有很多实现的方式的思路,比如提交后禁用按钮、重定向和令牌,但前两种方式有时候不起作用或者说没有“安全感”,我...
  • 不足:但用户单击”刷新”,或单击”后退”再次提交表单,将导致表单重复提交 表单页面由servlet程序生成,servlet为每次产生的表单页面分配一个唯一的随机标识号,并在FORM表单的一个隐藏字段中设置这个标识号,...
  • 1,在进入jsp页面之前,先在servlet中产生一个随机值,放入sesstion中  2,然后进入jsp页面,在页面中加入hidden类型的值,用el取出servlet中产生的值  3,提交form之后,在servlet中做判断:  1》,jsp页面中...
  • 关于表单重复提交

    2019-02-15 14:24:41
    有一句话说的好:永远不要相信前台 不过在阻止表单的重复提交上面前台JS还是能帮后台...主要逻辑思想:页面生成时或者表单提交前从服务器获取一个随机生成的token来唯一标识此次表单提交,并做为hidden参数提交给...
  • 防止表单重复提交

    2018-09-09 21:47:59
    一、防止表单重复提交表单重复提交主要有三个原因引起的: ​ 1.网络延迟时,用户连续点击 ​ 2.提交时刷新页面 ​ 3.提交完页面,回退到上一步,再次提交 二、代码示例 ​ 分析完原因开始代码实现。 ...
  • 方案一:利用Session防止表单重复提交 具体的做法:  1、获取用户填写用户名和密码的页面时向后台发送一次请求,这时后台会生成唯一的随机标识号,专业术语称为Token(令牌)。 2、将Token发送到客户端的Form表单中,...
  • l表单页面由servlet程序生成,servlet为每次产生的表单页面分配一个唯一的随机标识号,并在FORM表单的一个隐藏字段中设置这个标识号,同时在当前用户的Session域中保存这个标识号。 l当用户提交FORM表单时,负责...
  • 表单重复提交处理

    2017-12-11 13:34:00
    利用Session防止表单重复提交  对于【场景二】和【场景三】导致表单重复提交的问题,既然客户端无法解决,那么就在服务器端解决,在服务器端解决就需要用到session了。  具体的做法:在服务器端生成一个唯一的...
  • Java 表单的重复提交

    2016-12-21 11:31:27
    表单提交到一个Servlet,而Servlet有通过请求转发的方式响应了一个JSP,此时地址栏还保留着Servlet的那个路径 在响应页面点击刷新 b.在响应页面没有到达时重复点击提交按钮 c.在点击返回然后再次点击提交 如何避免...
  • 只需要在表单里生成一个token(随机字符串),然后用个input装起来,设置hidden。第一次post处理完数据后把token存入session,接下来每次post判断一下token跟session中的一不一样,一样则说明数据处理过了。 下面是我...
  • 表单重复提交: ... 由于网速等原因造成页面卡顿,用户重复刷新提交页面 避免表单重复提交的方式: ...思路:在表单提交前先请求后台获取token,后台随机生成token保存在session中,提交表单时在请求参数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 697
精华内容 278
关键字:

随机提交表单