`

php防止用户刷新重复提交的代码示例

阅读更多
本文使用session来解决。

Session保存在服务器端,在PHP过程中改变Session变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个Session变量记录表单提交的次数,大于1时,就不在处理表单中的数据。
测试代码:
01	<?php
02	/**
03	 * 防止刷新 重复提交
04	* site www.jbxue.com
05	*/
06	if (isset($_POST['action']) && $_POST['action'] == 'submitted') { 
07	      session_start(); 
08	      isset($_SESSION['submit_time']) or die ("no session"); 
09	      if ($_SESSION['submit_time']==0){ 
10	              print '<pre>'; 
11	         
12	              print_r($_POST); 
13	              print '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>'; 
14	         
15	              print '</pre>'; 
16	              $_SESSION['submit_time']=1; 
17	              echo $_SESSION['submit_time']; 
18	      } else { 
19	              print '<pre>'; 
20	         
21	              print_r($_POST); 
22	              echo "However you have submitted"; 
23	              print '</pre>'; 
24	      } 
25	} else { 
26	      session_start() or dir("session is not started"); 
27	      $_SESSION['submit_time']= 0;  
28	//        isset($_SESSION['submit_time']) or die ("session var is not created"); 
29	//        echo $_SESSION['submit_time']; 
30	?> 
31	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
32	  Name:  <input type="text" name="personal[name]"><br> 
33	  Email: <input type="text" name="personal[email]"><br> 
34	  Beer: <br> 
35	  <select multiple name="beer[]"> 
36	      <option value="warthog">Warthog</option> 
37	      <option value="guinness">Guinness</option> 
38	  </select><br> 
39	  <input type="hidden" name="action" value="submitted"> 
40	  <input type="submit" name="submit" value="submit me!"> 
41	</form> 
42	<?php 
43	} 
44	?>


上面代码有个缺点:
没有明确销毁Session,失效的Session文件可能仍然保留在服务器文件系统中。
哪位有好的办法,还请分享一下。本文原始链接:http://www.jbxue.com/article/7183.html
分享到:
评论

相关推荐

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

    在PHP编程中,防止用户因误操作或意外刷新页面导致的重复提交是一个常见的需求。当用户填写表单并提交后,如果不采取措施,再次刷新页面会导致同样的数据被再次提交到服务器,这可能会对数据库造成不必要的影响,...

    解析php防止form重复提交的方法

    如果用户试图通过刷新浏览器页面或者多次点击提交按钮来重复提交表单,由于“fsess”的值在首次提交后已经更新为新的时间戳,因此再次提交时会因为时间戳不一致而被拒绝。 需要注意的是,为了确保时间戳能够正确...

    php+Ajax远程加载防止重复提交

    当我们结合PHP和Ajax技术来实现远程加载并防止重复提交时,我们可以创建一个高效且用户体验良好的系统。下面将详细介绍这个主题。 首先,PHP是服务器端的一种脚本语言,常用于构建动态网页。Ajax(Asynchronous ...

    php防止用户重复提交表单

    但是,如果用户在未完成跳转之前刷新页面,仍然可能会导致重复提交。 3. 数据库唯一索引约束。通过在数据库层面设置唯一索引可以避免数据的重复,但这并不是一个专门用于防止重复提交的措施,更多地是为保证数据库...

    js防止表单重复提交实现代码

    在Web开发中,防止表单重复提交是一个重要的问题,它涉及到数据一致性、用户体验以及系统稳定性。重复提交可能会导致数据库中的数据出现错误或者冗余,因此需要采取措施来防止这种情况发生。以下是一些防止表单重复...

    ThinkPHP防止重复提交表单的方法实例分析

    此方法可以有效防止用户在页面跳转前重复点击提交按钮,但用户仍有可能通过浏览器的刷新功能来重复提交表单。 3. Token令牌法:这是一种服务器端解决方案,通过在表单中添加一个隐藏的Token字段,在提交数据时验证...

    PHP+Session防止表单重复提交的解决方法

    通过这两种方法,我们可以有效地防止因用户误操作而导致的表单重复提交。在实际开发中,结合前端的JavaScript验证也能进一步增强用户体验,例如在提交表单后禁用提交按钮,防止用户快速点击。 总的来说,...

    php通过记录IP来防止表单重复提交方法分析

    总的来说,防止表单重复提交是一个多方面考虑的问题,需要结合业务需求、安全性、用户体验等多个因素来选择合适的方法。在实际应用中,常常需要结合多种策略以达到最佳效果。无论选择哪种方法,都需要确保其不会影响...

    PHP防止表单重复提交的几种常用方法汇总

    在PHP编程中,防止表单重复提交是一个重要的实践,它能确保数据的准确性和一致性,避免因为用户意外或恶意的多次点击导致的数据冗余。以下是对防止表单重复提交的几种常用方法的详细说明: 1. **使用JavaScript禁用...

    重复提交资料——解析

    尽管提供的压缩包文件名为“新建文件夹”,但通常这类文件可能包含示例代码、教程文档或案例研究,用于展示如何实施上述的防止表单重复提交的策略。可能包括HTML和JavaScript代码片段,用于前端禁用按钮;也可能包含...

    php防止表单重复提交实例讲解

    在PHP开发中,防止表单重复提交是一个重要的环节,主要是为了防止用户因为刷新页面或者多次点击提交按钮而导致服务器端接收到重复的数据。重复提交不仅可能对数据库造成不必要的压力,还可能会对业务逻辑产生错误的...

    php解决和避免form表单重复提交的几种方法

    用户提交表单后,处理数据并使用`header()`函数重定向到其他页面,防止用户刷新导致重复提交。例如: ```php if (isset($_POST['submit'])) { header('location:success.php'); exit(); // 防止继续执行下面的...

    ajax判断商品是否重复,php后台

    ### AJAX判断商品是否重复知识点详解 #### 一、概述 ...它不仅能够有效防止重复添加相同商品的问题,还能极大地提升用户的交互体验。开发者可以根据具体需求调整代码细节,以适应不同的应用场景。

    PHP实现防止表单重复提交功能【基于token验证】

    以下是一个简单的PHP防止表单重复提交的实现,基于token验证的示例: 首先,我们需要创建一个`set_token()`函数,用于生成token。在这个例子中,使用`md5()`函数对当前时间戳进行加密,生成一个随机的32位字符串...

    php环境下利用session防止页面重复刷新的具体实现

    在PHP环境中,防止页面重复刷新是一项重要的功能,它有助于避免用户意外或恶意地多次提交表单数据,导致服务器资源的浪费或数据的错误处理。在本文中,我们将深入探讨如何利用PHP的session机制来实现这一目标。 ...

    php防止恶意刷新与刷票的方法

    在PHP开发中,防止恶意刷新和刷票是一个重要的安全措施,因为这可以帮助避免无效数据的产生,保护服务器资源,以及确保投票或数据提交的公正性。以下是一些防止恶意刷新和刷票的方法: 1. **使用验证码(CAPTCHA)*...

    ajax+php无刷新回贴和注册检验.7z

    例如,当用户输入用户名或邮箱时,可以立即检查这些信息是否已被其他用户占用,防止用户提交无效或重复的信息。 5. **前端验证**:Ajax可以用于前端验证,比如检查用户输入是否符合特定格式,如邮箱的格式,密码的...

Global site tag (gtag.js) - Google Analytics