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 PDO中文乱码解决办法
Jul 20 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
探讨:如何使用PhpDocumentor生成文档
Jun 25 PHP
调整PHP的性能
Oct 30 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
php上传文件问题汇总
Jan 30 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
yii实现model添加默认值的方法(2种方法)
Jan 06 PHP
Yii框架连表查询操作示例
Sep 06 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代码
2011/11/27 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
解密效果
2006/06/23 Javascript
轻轻松松学习JavaScript
2007/02/25 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python单例模式实例分析
2015/01/14 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
求职信格式要求
2014/05/23 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
大学军训的体会
2014/11/08 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server