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运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
PHP实现的json类实例
Jul 28 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
Zend Framework开发入门经典教程
Mar 23 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 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
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
详解python中asyncio模块
2018/03/03 Python
Python输入二维数组方法
2018/04/13 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
办公室文秘自我鉴定
2013/09/21 职场文书
施工安全协议书
2013/12/11 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
幼儿园家长寄语
2014/04/02 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
2014年建筑工作总结
2014/11/26 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
HAM-2000摩机图
2021/04/22 无线电
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB
Java8中接口的新特性使用指南
2021/11/01 Java/Android
yolov5返回坐标的方法实例
2022/03/17 Python
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python