当前位置:首页 > php技术文章 > 微信开发之php表单微信中自动提交两次问题解决办法

php表单微信中自动提交两次问题的解决办法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:114

这篇文章主要知识点是关于php表单微信中自动提交两次问题解决办法、php微信中自动提交、微信开发php表单自动提交两次、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP7从入门到精通:教学版
  • 类型:PHP7大小:426 MB格式:PDF作者:刘增杰、张工厂
立即下载

微信开发之php表单微信中自动提交两次问题解决办法

前言:

最近做微信开发,在微信中访问PHP页面,页面中有个表单。测试发现偶尔会出现表单被自动提交两次的情况,导致流程出错。

问题原因

暂时未找到原因,不过怀疑跟微信本身的机制有关。

解决方法

用session,每次提交表单时,计算一个随机数post出去。页面处理表单提交时,先判断是否有这个session,如果不存在就保存,存在就和post过来的随机数比较,如果相等表示重复提交。

代码示例:

表单部分

<div class="odform">
  <form action="#" method="post">

    <div class="input-group">
      <label for="amount_id">金额</label>
      <input type="text" name="amount" id="amount_id"
          placeholder="单位是元,精确到分,如:12.66" pattern="^([1-9]+(\.[0-9]{2})?|0\.[1-9][0-9]|0\.0[1-9])$">
      <input type="hidden" name="code" value="<?php $code = mt_rand(0, 100000); echo $code; ?>">
    </div>

    <div class="input-group">
      <span id="available">当前余额:<?php echo $amount_available; ?>元</span>
    </div>

    <button name="confirm">确认</button>
  </form>
</div>

处理表单提交

if(isset($_POST['confirm'])) {
  //解决重复调用两次的问题
  if ($_POST['code'] == $_SESSION['code'])
  {
    exit;
  }
  else
  {
    $_SESSION['code'] = $_POST['code'];
  }

  //continue....
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

idea2020注册激活码(激活到2100年)

实例分析Java实现的zip压缩及解压缩工具类

python3 pandas 如何读取MySQL数据和插入

ThinkPHP3.2.3框架如何实现分页功能

深入理解JS函数stack size计算方法

展开 +

收起 -

相关电子书
学习笔记
网友NO.209207

php防止表单重复提交实例讲解

说来惭愧,前几天做项目的时候,出现个低级错误。在公司后台做表单提交,一是自己员工用,二是 html 自己来写的,没有验证表单重复提交,结果出错了。写出来记录下以便提醒自己,时刻不能疏忽。 解决方法 其实方法有很多种,只举例几个简单的来说说。 框架 很多框架都有防止重复提交的功能,大家应该都有了解,这里不再赘述。 前端 原理很简单,用户点击提交之后,使用 JS 将提交按钮置灰即可。 后端 也就是使用 PHP 进行验证,当然不局限以下几种 Cookie 用户提交表单到后端,在 Cookie 中做标记,指定时间内重复提交无效。但是用户禁用 Cookie 这个方法就失效了。 ?php if (isset($_COOKIE['formFlag'])) { exit('error');} // 处理数据 // 30秒内重复提交无效setcookie('formFlag', time(), time() + 30); Session 展示表单页面的时候,生成随机数,同时存储在 Session 中以及表……

网友NO.287976

PHP提交表单后获取提交内容的方法

问题: 网页上提交表单之后,PHP为什么不能获取提交的内容?然而在老版本的PHP上运行却正常。 新版的PHP已经废弃了原来的表单内容处理方式,即不再把提交的表单的内容直接复制到一个同名变量中。 解决办法有四个: 1. 修改php.ini,查找 register_globals,将其值修改为 On。这样就可以像原来一样,例如,提交的表单中包括一个名为username的变量,那么在php中就可以直接使用$username来访问该变量。但是,除非你要使用一段旧的代码而考虑到兼容性问题,否则不建议使用该方法。 2. 使用 $HTTP_GET_VARS、$HTTP_POST_VARS数组来访问,例如写成$HTTP_POST_VARS[username]的形式。不过该方法也不建议采用。 3. (推荐)使用 $_POST、$_GET等数组来访问,例如写成 $_POST[username]的形式。建议采用这种方法。 (推荐)使用 import_request_variables 函数。该函数将提交内容导入到变量中。 例如……

网友NO.383000

php表单加入Token防止重复提交的方法分析

本文实例讲述了php表单加入Token防止重复提交的方法。分享给大家供大家参考,具体如下: Token浅谈 Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方——防止表单重复提交、anti csrf攻击(跨站点请求伪造)。 两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。 然后,如果应用于“anti csrf攻击”,则服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。 不过,如果应用于“防止表单重复提交”,服务器端第一……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757