PHP使用token防止表单重复提交的方法


Posted in PHP onApril 07, 2016

本文实例讲述了PHP使用token防止表单重复提交的方法。分享给大家供大家参考,具体如下:

<?php
/*
* PHP使用token防止表单重复提交
* 此处理方法纯粹是为了给初学者参考
*/
session_start();
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['test'])){
  if(!valid_token()){
    echo "token error";
  }else{
    echo '成功提交,Value:'.$_POST['test'];
  }
}
?>
<form method="post" action="">
  <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>">
  <input type="text" name="test" value="Default">
  <input type="submit" value="提交" />
</form>

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

PHP 相关文章推荐
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
php 禁止页面缓存输出
Jan 07 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
PHP-redis中文文档介绍
Feb 07 PHP
PHP无限分类(树形类)的深入分析
Jun 02 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP的PDO常用类库实例分析
Apr 07 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
TP3.2框架分页相关实现方法分析
Jun 03 PHP
php实现图片压缩处理
Sep 09 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 #PHP
Linux下编译redis和phpredis的方法
Apr 07 #PHP
php 实现进制相互转换
Apr 07 #PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 #PHP
php制作简单模版引擎
Apr 07 #PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 #PHP
非常有用的9个PHP代码片段
Apr 06 #PHP
You might like
php按百分比生成缩略图的代码分享
2014/05/10 PHP
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
python多线程方式执行多个bat代码
2016/06/07 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
绩效管理实施方案
2014/03/19 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
小学数学课后反思
2014/04/23 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
芙蓉镇观后感
2015/06/10 职场文书