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 相关文章推荐
5.PHP的其他功能
Oct 09 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 PHP
一个PHP的ZIP压缩类分享
May 04 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 PHP
解决laravel查询构造器中的别名问题
Oct 17 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 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
javascript canvas时钟模拟器
2020/07/13 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python将字符串转换成json的方法小结
2019/07/09 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
Django视图类型总结
2021/02/17 Python
python 将Excel转Word的示例
2021/03/02 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
生产管理的三大手法
2013/11/11 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
优秀班组长事迹
2014/05/31 职场文书
感恩教育月活动总结
2014/07/07 职场文书
社会工作专业自荐信
2014/09/26 职场文书
消防验收申请报告
2015/05/15 职场文书