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 相关文章推荐
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
Jun 17 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
实现PHP搜索加分页
Oct 12 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
Smarty模板变量与调节器实例详解
Jul 20 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+mysql一个名片库程序
2006/10/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php常用数组函数实例小结
2016/12/29 PHP
php 数组元素快速去重
2017/05/05 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
python删除某个字符
2018/03/19 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
python中web框架的自定义创建
2019/09/08 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
大学本科毕业生求职信范文
2013/12/18 职场文书
竟聘演讲稿范文
2013/12/31 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
客服专员岗位职责
2015/02/10 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android