提供Discuz ,ECShop ,PHPCMS ,帝国CMS ,CSS教程 ,PHP教程 ,DedeCMS ,WordPress ,HTML教程等cms问题查询.
当前位置: PHP问题 > php怎样防止屡次提交【php问题】,php,避免,多次提交

下面的状况就会致使表单反复提交:

·点击提交按钮两次。

·点击革新按钮。

·运用浏览器退却按钮反复之前的操纵,致使反复提交表单。

·运用浏览器历史记录反复提交表单。

·浏览器反复的HTTP请求。

·网页被歹意革新。

下面是几种解决办法:

一、运用js设置按钮点击后变成灰色

<form name=form1 method=”POST” action=”/” target=_blank>
<p>
<input type=”text” name=”T1″ size=”20″>
<input type=”button” value=”提交” οnclick=”javascript:{this.disabled=true;document.form1.submit();}”>
</p>
</form>

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

相干引荐:《php教程》

二、运用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');
}

以上就是php怎样防止屡次提交的细致内容,更多请关注ki4网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

0 条评论关于"php怎样防止屡次提交【php问题】,php,避免,多次提交"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线