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 相关文章推荐
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
Nov 26 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
解决php表单重复提交实现方法
Sep 29 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
PHP自动识别当前使用移动终端
May 21 PHP
php7函数,声明,返回值等新特性介绍
May 25 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中实现简单的ACL 完结篇
2011/09/07 PHP
php实现cookie加密的方法
2015/03/10 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
vue接口请求加密实例
2020/08/11 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
python线程中同步锁详解
2018/04/27 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
python、Matlab求定积分的实现
2019/11/20 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
python把一个字符串切开的实例方法
2020/09/27 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
特色蛋糕店创业计划书
2014/01/28 职场文书
夜不归宿检讨书
2014/02/25 职场文书
社区党建工作方案
2014/06/10 职场文书
会议室标语
2014/06/21 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
个人年底工作总结
2015/03/10 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang
opencv检测动态物体的实现
2021/07/21 Python
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python