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页面间传递参数实例代码
Jun 05 PHP
php的memcached客户端memcached
Jun 14 PHP
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
php类中private属性继承问题分析
Nov 01 PHP
Yii CGridView用法实例详解
Jul 12 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
PHP递归的三种常用方式
Feb 28 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 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
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
Python sys.argv用法实例
2015/05/28 Python
Django入门使用示例
2017/12/12 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
python yield关键词案例测试
2019/10/15 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
竞选部长演讲稿
2014/04/26 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
学校捐书倡议书
2015/04/27 职场文书
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python