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+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
php Smarty 字符比较代码
Feb 27 PHP
PHP缓存技术的使用说明
Aug 06 PHP
PHP计数器的实现代码
Jun 08 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
PHP如何将XML转成数组
Apr 04 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 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基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
vue实现简单图片上传
2020/06/30 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
python如何基于redis实现ip代理池
2020/01/17 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Pygame的程序开始示例代码
2020/05/07 Python
Python常用数据分析模块原理解析
2020/07/20 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
企业面试题试卷附带答案
2015/12/20 面试题
小学教研工作制度
2014/01/15 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang