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 相关文章推荐
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
利用PHP实现短域名互转
Jul 05 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
php中rename函数用法分析
Nov 15 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 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产生不重复随机数的5个方法总结
2014/11/12 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
详解php协程知识点
2018/09/21 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
基于python实现KNN分类算法
2020/04/23 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
竞争上岗演讲稿
2014/01/05 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
报名委托书
2015/01/29 职场文书
2015年教研工作总结
2015/05/23 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技