PHP防止post重复提交数据的简单例子_php实例

在某帝国面试的时候问题了这个题: 怎么处理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>

时间: 2024-11-08 22:41:19

PHP防止post重复提交数据的简单例子_php实例的相关文章

php xml留言板 xml存储数据的简单例子_php实例

类文件 : _class.xmldb.inc.php 复制代码 代码如下: <?php class xmldb extends DOMDocument{     var $xmldb;     public function __construct($xmldbname){         $this->xmldb=$xmldbname;         if(!file_exists($this->xmldb)){             $initxmldb = "<

PHP防止刷新重复提交页面的示例代码_php实例

PHP防止刷新重复提交页面的示例代码 作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题.如何防止刷新页面重复提交呢? PHP防止刷新重复提交,通过不断刷新(Refresh or Reload)表单提交页面,可以重复提交表单内容,可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在服务器端,下次访问这个变量时,得到

php 防止表单重复提交两种实现方法_php实例

php 防止表单重复提交 由于网络原因,经常出来点了提交按钮,网页没有反应,而进行再次点击.这样就导致后台收到两次提交,从而进行两次处理,本文章向大家介绍php 防止表单重复提交的几种方法 1.前端解决 方法一: 可以通过前端来解决.当用户点了提交按钮之后,先使用js进行有效性判断,没问题后,将提交按钮"禁用"掉.然后再提交! 方法二: 使用ajax提交表单.点了提交按钮后,禁用提将按钮,或者设置一个状态值,将其设为1,表示正在提交.再提交时判断如果正在提交,则不作处理.等ajax返回

php添加数据到xml文件的简单例子_php实例

xml文件:stu.xml: <?xml version="1.0" encoding="utf-8" ?> <AllData> <xueshengmen> <xuesheng> <name>张三</name> <yuwen>80</yuwen> <shuxue>90</shuxue> <yingyu>70</yingyu>

分享一个PHP数据流应用的简单例子_php实例

复制代码 代码如下: <?php $count = 5; start: if($count < 5) echo "You can try {$count} time, "; echo "Put Password: "; $handle = fopen ("php://stdin","r"); $line = fgets($handle); if(trim($line) != '123456'){ $count--;

asp.net防止刷新重复提交数据解决方法的分析

在Asp.net开发中,浏览器刷新重复触发事件,导致重复提交的问题,下面有几种解决方法,我针对适用情况和利弊做一个简单的分析. 方法一:检测数据表,看是否有相同的数据.这种方法对插入数据可能意义更大些,不过如何定义是相同的数据,是个麻烦的事.同时,如果不是插入数据,是删除呢,就不适用了. 方法二:提交后,转向一个过渡页面,然后再从过渡页面返回到当前的页面.这就要求在提交后,要把当前页面的URL地址作为参数传过去,同时不能保存缓存,否则"后退"带来不良后果.不过,如果是简单的删除,似乎转

注册或者点击按钮时,怎么防止用户重复提交数据

 这篇文章主要是对注册或者点击按钮时,怎么防止用户重复提交数据进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 asp.net实现点击按钮后设按钮不可用并提交  代码如下: <asp:Button ID="Button1" runat="server" Text="123456" OnClientClick="this.disabled=true;this.form.submit(); "  UseSubmitB

asp防止重复提交数据实现方法

 代码如下 复制代码 session("time")=now() const a=#0:0:4# '定义相隔之间的秒数 if session("time2") >0 then '如果有值 if session("time2")+a > session("time") then ' session("time2")=now() response.redirect "look.asp&qu

新人求教 刷新页面为什么会重复提交数据

问题描述 如果是asp.net服务器控件有postback刷新页面会执行之前的提交,再一次提交数据...那我用html表单提交,刷新页面会重复提交数据吗?这又是为什么呢? 解决方案 解决方案二:if(!postback){Bind();}??解决方案三:ls的啥意思???解决方案四:提交后转向到另一个页面解决解决方案五:我不想知道怎么样解决,解决方案网上一搜一大把...我想知道为什么服务器控件提交刷新会重复执行好像是无可厚非非服务器控件刷新时表单为啥也重复提交呢?解决方案六:防止重复提交,可以在