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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
Dec 06 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 PHP
php查询内存信息操作示例
May 09 PHP
php精度计算的问题解析
Jun 21 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获取网卡地址的代码
2008/04/09 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
javascript的BOM汇总
2015/07/16 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
浅谈Python中的私有变量
2018/02/28 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python实现图片上添加图片
2019/11/26 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
经典c++面试题六
2012/01/18 面试题
交通事故检查书范文
2014/01/30 职场文书
挂牌仪式主持词
2014/03/20 职场文书
房屋委托书范本
2014/04/04 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
英语求职信范文
2014/05/23 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
企业培训简报范文
2015/07/20 职场文书
初中体育教学随笔
2015/08/15 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python