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制作静态网站的模板框架(四)
Oct 09 PHP
PHP 全角转半角实现代码
May 16 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
php使用codebase生成随机数
Mar 25 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
php获取网页请求状态程序示例
Jun 17 PHP
php文件下载处理方法分析
Apr 22 PHP
php实现SAE上使用storage上传与下载文件的方法
Jun 29 PHP
PHPMailer发送邮件
Dec 28 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 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为php增加openssl模块的方法
2011/06/14 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
Javascript 模式实例 观察者模式
2009/10/24 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
Python随机数random模块使用指南
2016/09/09 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
写出一个方法实现冒泡排序
2016/07/08 面试题
客户经理岗位职责
2013/12/08 职场文书
大学生毕业鉴定
2014/01/31 职场文书
青春励志演讲稿
2014/04/29 职场文书