好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php提示重复提交 php api防止重复提交

很多站长朋友们都不太清楚php提示重复提交,今天小编就来给大家整理php提示重复提交,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 在用php做小页面,有个表单.每次刷新页面时老是提示不要重复提交表单?怎样去掉这个提示啊 2、 php避免form表单重复提交 3、 php通过记录IP来防止表单重复提交方法分析 4、 PHP关于避免 页面刷新时 重复提交表单的问题。。 在用php做小页面,有个表单.每次刷新页面时老是提示不要重复提交表单?怎样去掉这个提示啊

首先,为什么会出现这个问题?假设你在a.html有一个表单<form>....</form>,首先我们要理解浏览器这样做的用意:如果我们刷新这个网页,你表单填写的内容可能会被reset。如果你的表单是长长的填写了很多内容,你当然不希望重头再来,就这点而言,浏览器的提示没有恶意。我们要做的就是告诉浏览器:放心刷新。这也是解题的思路:在刷新时把表单撤了。当然,我的情况可能和你的不同,我写的是弹窗式的登录页面,所以,我用Jquery写了个Load(“b.html”),b.html里只有一个<form>。这样做就可以保证a.html里没有<form>。只有你的网页里有<form>,chrome就会提示“重新提交表单”。这个情况在IE,FF则不会出现。

这是我遇到的情况,希望对你有启发。

php避免form表单重复提交

php避免form表单重复提交

重复提交我们在php中的防止方法许多最常用的就是数据库限制了,当然也有可以直接在客户端进行限制了,具体的来看php重复提交防止示例会有哪些呢?

下面的情况就会导致表单重复提交:

点击提交按钮两次。

点击刷新按钮。

使用浏览器后退按钮重复之前的操作,导致重复提交表单。

使用浏览器历史记录重复提交表单。

浏览器重复的HTTP请求。

网页被恶意刷新。

下面是几种解决办法:

一:利用js设置按钮点击后变成灰色

<form name=form1 method=”POST” action=”/” target=_blank>

<p>

<input type=”text” name=”T1″ size=”20″>

<input type=”button” value=”提交” onclick=”javascript:{this.disabled=true;document.form1.submit();}”>

</p>

</form>

点击完按钮之后变成灰色就不能点击了,用户需要再次提交表单的话就要刷新页面之后重新填写数据再提交了。

二:利用session

在session中???放一个特殊标志。当表单页面被请求时,生成一个特殊的字符标志串,存在session中,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session中删除它,然后正常处理数据。

如果发现表单提交里没有有效的.标志串,这说明表单已经被提交过了,忽略这次提交。

这使你的web应用有了更高级的XSRF保护

加载提交的页面时候,生成一个随机数,

$code = mt_rand(0,1000000);

存储在表单的隐藏输入框中:

< input type=”hidden” name=”code” value=””>

在接收页面的PHP代码如下:

<?php

session_start();

if(isset($_POST[‘code’])) {

if($_POST[‘code’] == $_SESSION[‘code’]){

// 重复提交表单了

}else{

$_SESSION[‘code’] =$_POST[‘code’]; //存储code

}

}?>

三:利用cookies

原理和session差不多,但是cookies一旦用户浏览器禁用cookies,这功能就失效了

if(isset($_POST[‘submit’])){

setcookie(“tempcookie”,””,time()+30);

header(“Location:”.$_SERVER[PHP_SELF]);exit();

}

if(isset($_COOKIE[“tempcookie”])){

setcookie(“tempcookie”,””,0);echo “您已经提交过表单”;

}

四:利用header函数跳转

一旦用户点击提交按钮,处理完数据后跳到其他页面

if (isset($_POST[‘submit’])) {

header(‘location:success.php’);//处理数据后,转向到其他页面

}

五:利用数据库来添加约束

直接在数据库里添加唯一约束或创建唯一索引,一旦发现用户重复提交了,直接抛出警告或者提示,或者只处理第一次提交的数据,这是最直接有效的方法,要求前期的数据库设计和架构要考虑周全.

六:Post/Redirect/Get模式

在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简言之,当用户提交了表单后,你去执行一个客户端的重定向,转到提交成功信息页面。

if (isset($_POST[‘action’]) $_POST[‘action’] == ‘submitted’) {

//处理数据,如插入数据后,立即转向到其他页面

header(‘location:submits_success.php’);

}

这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。

;

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

本文实例分析了php通过记录IP来防止表单重复提交方法。分享给大家供大家参考。具体分析如下:

这个原理比较的简单就是用户第一次提交时我们记录提交用户的IP地址,这样如果用户在固定时间内再次提交表单就会提示重复提交了,这种做法通常用于在顶一下,支持一下这种应用中了,在防止数据重复提交是一个非常不好的选择.

例子,代码如下:

复制代码

代码如下:<?php

session_start();

if(empty($_SESSION['ip']))//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库

{

$_SESSION['ip']=$_SERVER['REMOTE_ADDR'];//第一次写入,为后面刷新或后退的判断做个铺垫

mysql_query("INSERT

INTO

admin(id,

name,

age)

VALUES(123,

'姚明',

25)");//写入数据库操作

}

else//已经有第一次写入后的操作,也就不再写入数据库

{

echo

'请不要重复提交表单或刷新页面';//写一些已经写入的提示或其它东西

}

?>

还有办法就是:

1:在页面生成随机码,也就是每次提交随机码都不一样,在提交的时候验证随机码!

2:在提交的时候,验证如果数据存在,就不提交了.

如果你想防止重复提交入库IP不是最好的办法,我们可以在数据库中查询是不是有相同记录并且IP是不是想同再进行处理.

例子,代码如下:

复制代码

代码如下:$sql

="select

*

from

表名

where

buy_tel='电话'

and

IP='$ip'

";//

and

$time-buy_date<60

$query

=

$db->query(

$sql

);

if(

$db->rows(

$query

)

)

{

echo('<script>alert("您己提交过了,请勿重复提交!");</script>');

}

else

{

//进行入库操作

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP关于避免 页面刷新时 重复提交表单的问题。。

其实有一个不太好的办法

就是当用户提交表单之后,用js弹出一个框,已成功提交,

echo "<script>alert('已成功提交')</script>";

然后用php的header或者js跳转到提交页面

header("location:$post");

这样相当于自己刷新了一遍页面,然后用户再怎么刷新也没事

虽然用户体验不是很好,不过如果没用Ajax的话,正常提交也要刷一下的,楼主可以自己试下

关于php提示重复提交的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php提示重复提交 php api防止重复提交的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did254983
更新时间:2023-09-26   阅读:69次

上一篇: phphint插件下载 php 插件系统

下一篇:php物业台账公式 物业台账是什么意思

相关资讯

最新资料更新

  • 1.php每个小时执行 php定时执行每天执行一次
  • 2.php编程实验总结 php简单实训项目
  • 3.零基础php模板 php0基础教程
  • 4.php棋牌小游戏 棋牌类小程序
  • 5.php语言怎么玩 php语言入门
  • 6.php数组逗号分隔 php中的输出语句 能使用逗号分隔多个表达式
  • 7.phpvc6vc9的简单介绍
  • 8.php提示重复提交 php api防止重复提交
  • 9.php代码太长换行 php换行符号
  • 10.关于php+imei的信息
  • 11.如何知道php密码 php确认密码
  • 12.php前端页面源码 php前端页面源码是多少
  • 13.php菱形的输出 php输出菱形星号
  • 14.php压缩上传的图片 php上传图片文件
  • 15.php获取监控视频 php采集视频地址
  • 16.php重命名不了 php 命名空间 通俗易懂
  • 17.php做vip解析 php解析器是什么
  • 18.php如何页面静态化 php实现页面静态化
  • 19.php数组冒泡排序 php冒泡排序面试题
  • 20.php生成静态代码 php如何实现静态化

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]