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 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php下intval()和(int)转换使用与区别
Jul 18 PHP
php cookie 登录验证示例代码
Mar 16 PHP
php 在文件指定行插入数据的代码
May 08 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
php curl发送请求实例方法
Aug 01 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
cument.execCommand()用法深入理解
2012/12/04 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
对numpy中shape的深入理解
2018/06/15 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
自行车广告词大全
2014/03/21 职场文书
小学生环保演讲稿
2014/04/25 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
高三教师工作总结2015
2015/07/21 职场文书
学校远程教育工作总结
2015/08/11 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技