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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
PHP 类相关函数的使用详解
May 10 PHP
php Session存储到Redis的方法
Nov 04 PHP
php文件上传的例子及参数详解
Dec 12 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
Symfony控制层深入详解
Mar 17 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 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
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python实现完整的事务操作示例
2017/06/20 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
python最长回文串算法
2018/06/04 Python
np.random.seed() 的使用详解
2020/01/14 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
财务人员个人自荐信范文
2013/09/26 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
小学生学习保证书
2015/02/26 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
Python实现自动玩连连看的脚本分享
2022/04/04 Python