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 相关文章推荐
实用函数9
Nov 08 PHP
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
PHP 可阅读随机字符串代码
May 26 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
解析PHP提交后跳转
Jun 23 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 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
fgetcvs在linux的问题
2012/01/15 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
php实现Session存储到Redis
2015/11/11 PHP
Javascript之文件操作
2007/03/07 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python实现扫描日志关键字的示例
2018/04/28 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
青年文明号创建承诺
2014/03/31 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
质量承诺书怎么写
2014/05/24 职场文书
交通事故协议书范本
2014/11/18 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
为Centos安装指定版本的Docker
2022/04/01 Servers
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL