PHP实现防止表单重复提交功能【基于token验证】


Posted in PHP onMay 24, 2018

本文实例讲述了PHP实现防止表单重复提交功能。分享给大家供大家参考,具体如下:

防止表单重复提交的方法有很多种,那么今天就给大家介绍一种php如何有效的防止表单重复提交。

代码非常简单

我相信大家很聪明给大家分享一个小的demo,大家可以借鉴一下:

PHP实现防止表单重复提交功能【基于token验证】

PHP实现防止表单重复提交功能【基于token验证】

具体代码:

<?php
/*
* 2016年9月29日08:09:13
*/
session_start();
header("Content-Type: text/html;charset=utf-8");
function set_token() {
  $_SESSION['token'] = md5(microtime(true));
}
function valid_token() {
  $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;
  set_token();
  return $return;
}
//如果token为空则生成一个token
if(!isset($_SESSION['token']) || $_SESSION['token']=='') {
  set_token();
}
if(isset($_POST['web'])){
  if(!valid_token()){
    echo "token error,请不要重复提交!";
  }else{
    echo '成功提交,Value:'.$_POST['web'];
  }
}else{
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>PHP防止重复提交表单</title>
<meta name="keywords" content="PHP" />
<meta name="description" content="PHP防止重复提交表单" />
</head>
<body>
<div id="main">
  <div class="demo">
    <form method="post" action="">
      <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>">
      <input type="text" class="input" name="web" value="三水点靠木">
      <input type="submit" class="btn" value="提交" />
    </form>
  </div>
</div>
</body>
</html>
<?php }?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 防恶意刷新实现代码
May 16 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 #PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 #PHP
PHP实现一维数组与二维数组去重功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 #PHP
yii2安装详细流程
May 23 #PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 #PHP
You might like
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
php实现mysql数据库备份类
2008/03/20 PHP
php checkbox 取值详细说明
2010/08/19 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
Django中处理出错页面的方法
2015/07/15 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
django-csrf使用和禁用方式
2020/03/13 Python
python IDLE添加行号显示教程
2020/04/25 Python
如何使用python切换hosts文件
2020/04/29 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
局域网定义和特性
2016/01/23 面试题
机工车间主任岗位职责
2014/03/05 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
节能环保口号
2014/06/12 职场文书