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 相关文章推荐
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 PHP
php获取301跳转URL简单实例
Dec 16 PHP
php获取中文拼音首字母类和函数分享
Apr 24 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
10个值得深思的PHP面试题
Nov 14 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
php session_decode函数用法讲解
May 26 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 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
python解析文件示例
2014/01/23 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
大学毕业感言50字
2014/02/07 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
商铺门面租房协议书
2014/10/21 职场文书
保研推荐信范文
2015/03/25 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis