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


Posted in PHP onNovember 11, 2015

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

作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题。如何防止刷新页面重复提交呢?

PHP防止刷新重复提交,通过不断刷新(Refresh or Reload)表单提交页面,可以重复提交表单内容,可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个 Session 变量记录表单提交的次数,大于1时,就不再处理表单中的数据。

核心代码

以下为引用内容:

if (isset($_POST['action']) && $_POST['action'] == 'submitted') { 
session_start(); 
if (isset($_SESSION['submit_time']) && $_SESSION['submit_time']==0){ 
print '<pre>'; 
print_r($_POST); 
print '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>'; 
print '</pre>'; 
$_SESSION['submit_time']=1; 
echo $_SESSION['submit_time']; 
unset($_SESSION['submit_time']);
} else { 
print '<pre>'; 
print_r($_POST); 
echo "However you have submitted"; 
print '</pre>'; 
} 
} else { 
session_start() or dir("session is not started"); 
$_SESSION['submit_time']= 0; 
// isset($_SESSION['submit_time']) or die ("session var is not created"); 
// echo $_SESSION['submit_time']; 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
Name: <input type="text" name="personal[name]"><br> 
Email: <input type="text" name="personal[email]"><br> 
Beer: <br> 
<select multiple name="beer[]"> 
<option value="warthog">Warthog</option> 
<option value="guinness">Guinness</option> 
</select><br> 
<input type="hidden" name="action" value="submitted"> 
<input type="submit" name="submit" value="submit me!"> 
</form> 
<?php 
} 
?>
PHP 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
php分页示例分享
Apr 30 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 #PHP
深入php内核之php in array
Nov 10 #PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 #PHP
php实现可运算的验证码
Nov 10 #PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 #PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 #PHP
深入理解PHP内核(一)
Nov 10 #PHP
You might like
VOLVO车载收音机
2021/03/02 无线电
php学习笔记 数组的常用函数
2011/06/13 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
php 短链接算法收集与分析
2011/12/30 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php实现可逆加密的方法
2015/08/11 PHP
jquery动态加载js三种方法实例
2013/08/03 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
详解Django 中是否使用时区的区别
2018/06/14 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Python交互式图形编程的实现
2019/07/25 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
为什么需要版本控制?
2013/08/08 面试题
什么是封装
2013/03/26 面试题
政审证明材料
2015/06/19 职场文书
会计主管竞聘书
2015/09/15 职场文书
护士业务学习心得体会
2016/01/25 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js