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 相关文章推荐
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
深入php self与$this的详解
Jun 08 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
PHP简单实现DES加密解密的方法
Jul 12 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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/10/09 PHP
php 时间计算问题小结
2009/01/04 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
Django中的静态文件管理过程解析
2019/08/01 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Python文件路径名的操作方法
2019/10/30 Python
Django 批量插入数据的实现方法
2020/01/12 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
医院保洁服务方案
2014/06/11 职场文书
车间班组长竞聘书
2015/09/15 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
Python+Tkinter制作专属图形化界面
2022/04/01 Python
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL