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 相关文章推荐
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php 操作符与控制结构
Mar 07 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
php基于websocket搭建简易聊天室实践
Oct 24 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
php源码的安装方法和实例
Sep 26 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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获得文件扩展名三法
2006/11/25 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
javaScript基础详解
2017/01/19 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
Python实现队列的方法
2015/05/26 Python
深入理解Python中的内置常量
2017/05/20 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
python实现维吉尼亚加密法
2019/03/20 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
详解Python中第三方库Faker
2020/09/25 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
四风问题自我剖析材料
2014/10/07 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
《认识年月日》教学反思
2016/02/19 职场文书