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模拟HTTP认证
Oct 09 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
php 高效率写法 推荐
Feb 21 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
Jun 20 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
PHP魔术方法的使用示例
Jun 23 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
Dec 16 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
python logging类库使用例子
2014/11/22 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
Python缓存技术实现过程详解
2019/09/25 Python
Python调用.NET库的方法步骤
2019/12/27 Python
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
初中美术教学反思
2014/01/29 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
施工员岗位职责
2014/03/16 职场文书
保护环境建议书300字
2014/05/13 职场文书
八一建军节演讲稿
2014/09/10 职场文书
授权委托书公证
2014/09/14 职场文书
士兵突击观后感
2015/06/16 职场文书
年终工作总结范文
2019/06/20 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python