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连接局域网MYSQL数据库的简单实例
Aug 26 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 PHP
Symfony核心类概述
Mar 17 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
laravel-admin 中列表筛选方法
Oct 03 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
php中用unset销毁变量并释放内存
May 10 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 autoload机制的详解
2013/06/09 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
JavaScript 乱码问题
2009/08/06 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
javascript实现连续赋值
2015/08/10 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python实现视频读取和转化图片
2019/12/10 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
Python绘制数码晶体管日期
2021/02/19 Python
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
30年同学聚会邀请函
2014/01/25 职场文书
增员口号大全
2014/06/18 职场文书
学习雷锋标语
2014/06/25 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书