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 三维饼图的实现代码
Sep 28 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
Smarty foreach控制循环次数的一些方法
Jul 01 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
PHP中散列密码的安全性分析
Jul 26 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 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
php不用正则验证真假身份证
2013/11/06 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
python对常见数据类型的遍历解析
2019/08/27 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
大学活动策划书范文
2014/01/10 职场文书
大学运动会通讯稿
2014/01/28 职场文书
读书活动总结范文
2014/04/26 职场文书
机关搬迁方案
2014/05/18 职场文书
学校运动会报道稿
2014/09/23 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js