PHP防止post重复提交数据的简单例子


Posted in PHP onJune 07, 2014

在某帝国面试的时候问题了这个题: 怎么处理post提交重复的问题, 后来跟@暖阳交流,他说记录时间,我没有明白,我想的是用session在表单页面记录下,然后提交页面判断,如果相等则视为成功,并清空session,但有个问题是如果表单页面是html的呢,乍办?要不调个php验证的页面?类似验证码的功能. 还有的说用 header头设置过期时间...但没试.以下是我php写的,经测试可用.

<?php
//开启session
session_start();
//如果有提交标识
if(isset($_GET['action']) && $_GET['action'] === 'save'){
 //如果有session且跟传过来的值一样才算提交
 if(isset($_SESSION['__open_auth']) && isset($_POST['auth']) && $_SESSION['__open_auth'] == $_POST['auth']){
  print_r($_POST);
  $_SESSION['__open_auth'] = null;//清空
 } else {
  //走起
  header("location: post.php");
 }
 exit();
}
//授权
$auth = $_SESSION['__open_auth'] = time();
?>
<!doctype html>
<html>
<head>
 <meta charset="UTF-8">
 <title>post</title>
</head>
<body>
 <form action="post.php?action=save" method="post">
  <ul>
   <li>
    <input type="hidden" name="auth" value="<?php echo $auth;?>">
    <input type="text" name="userName">
   </li>
   <li>
    <input type="password" name="userpass">
   </li>
   <li>
    <input type="submit" value="走起">
   </li>
   <li>
    <?php echo time(); ?>
   </li>
  </ul>
 </form>
</body>
</html>
PHP 相关文章推荐
php 验证码实例代码
Jun 01 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
PHP缓冲区用法总结
Feb 14 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
php fread函数使用方法总结
May 28 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 #PHP
php 判断网页是否是utf8编码的方法
Jun 06 #PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 #PHP
php中数字0和空值的区别分析
Jun 05 #PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 #PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 #PHP
一组PHP加密解密函数分享
Jun 05 #PHP
You might like
用文本文件制作留言板提示(下)
2006/10/09 PHP
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
js有序数组的连接问题
2013/10/01 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
javascript数字验证的实例代码(推荐)
2016/08/20 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
什么是封装
2013/03/26 面试题
期末考试动员演讲稿
2014/01/10 职场文书
幼儿教师工作感言
2014/02/14 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
领导离职感言
2015/08/03 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技
MySQL数据管理操作示例讲解
2022/12/24 MySQL