导航:首页 > 编程语言 > php禁止重复提交

php禁止重复提交

发布时间:2022-10-02 17:21:49

php 在自己本身的页面如何防止重复提交的

一般来说,PHP最主流的方式,是通过在表单中添加一个隐藏字段,使用类似md5、uniqid这类函数来生成一个随机码进行提交。
验证表单的时候,可以将相应的随机码进行缓存、对比。如果存在已缓存的随机码,就认为该表单已经被提交了,返回错误就可以了。
另外,在用户体验方面,可以在用户点击提交后,将提交按钮disabled几秒钟,就避免了用户误操作提交多次(当然,这只是用户体验层面的,无法阻挡恶意提交)

② php选择框的session防止重复提交问题

大致看了下,主要两个问题:
1)session_start(),代码里仅在没有提交且没有生成过session时才执行,这直接导致提交时$_SESSION未定义
2)隐藏值originator,value="<?=$value?>">,$value从哪来的?应该是$code吧。但如果是$code,那必然又和$_SESSION['code']一致了

可以考虑以$_SESSION['code']是否存作为判断是否第一次提交的依据,示例代码如下:
----------------------------------------------------------
<?php session_start(); ?>

<!-- 页面显示部分 -->
<html>
<form id="form2" name="form2" method="post" action="">
<div align="left">请选择数据:
<select name="select" id="select">
<?php
$App = new AppInfo();
$appData=$App->appInfo;
foreach ($appData as $k=>$v) {
echo '<option value="', $v['id'], '">', $v['name'], '</option>';
}
?>
</select>
<input type ="submit" value ="提交"/>
</div>
</form>
<input type="button" value="返回主页" onclick="location.href='/player/server/views/index.html'">

<!-- 提交处理部分 -->
<?php
if( isset( $_POST['select'] ) ){
if( isset( $_SESSION['code'] ) ){
echo '请不要刷新页面或重复提交表单!';
}else{
$uss = new UserAction();
$uss->userSubmit($_POST['select']);
$_SESSION['code'] = TRUE;
}
}?>
</html>

③ 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程序设计有所帮助。

④ thinkphp 防止重复提交数据。

亲,你可以加验证码验证啊!~~
第一次产生验证码,然后验证完成后就将验证码更新掉,这样他再提交验证码就错误了,验证码错误就不让他提交,直接转向就好了!~~
验证码是防止重复提交的一个简单的方式,目前还是比较有效的!~~
而且tp生成验证码很简单,验证也很方便的!~~
具体可以参考文档这里:http://document.thinkphp.cn/manual_3_2.html#verify
希望对你有帮助,如果有帮助,记得采纳哟!~~

⑤ PHP防止重复提交方法

你都已经会用token来做防提交了,用$_COOKIE来设定时间

提交成功,保存COOKIE

setcookie('lastposttime',time(),time()+86400*24);

然后判断发布时间

time()-$_COOKIE['lastposttime'])<60(单位秒)

现在就不会重复提交了

⑥ php 如何防止表单重复提交呢

在php中如何防止表单的重复提交


<?php
/*
*php中如何防止表单的重复提交
*/
session_start();
if(empty($_SESSION['ip'])){//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
$_SESSION['ip']=$_SERVER['REMOTE_ADDR'];//第一次写入,为后面刷新或后退的判断做个铺垫
//...........//写入数据库操作
}else{//已经有第一次写入后的操作,也就不再写入数据库
echo'请不要再次刷新和后退';//写一些已经写入的提示或其它东西
}
?>

还有办法就是:
1、在页面生成随机码,也就是每次提交随机码都不一样,在提交的时候验证随机码!
2、在提交的时候,验证如果数据存在,就不提交了

⑦ php如何避免刷新页面重复提交

可以采用ajax配合使用php可以防止刷新页面重复提交
也可以使用框架同样可以防止
你直接访问数据处理页面的时候,$_POST['title'],$_POST['num] 应该是空值,所以你增加一个判断,必须有具体的值,再进行sql操作。

⑧ php 提交表单到当前页面如何防止页面刷新重复提交~

最常用的方法就是利用token。即:
1、在生成页面的时候生成一个token(随机字符串),并把它同时写入表单的某个hidden中,和服务端的session中。
2、客户端提交表单到服务器时,比对表单中的token与session中的token是否一致。若不一致则认为是无效的请求。
3、不管第2步的校验是否通过,token只要使用一次后就立即作废(即:从session中销毁)。同时token也可以关联时间信息,超时后也自动作废。

这样,即便客户端重复提交,也只有第一次的请求能够成功。

⑨ php如何防止重复提交

您可以加上表单令牌,或者使用随机数的方式来阻止

阅读全文

与php禁止重复提交相关的资料

热点内容
天干地支年份算法 浏览:796
程序员打造的视频 浏览:4
java和php通信 浏览:679
为什么黑程序员 浏览:162
程序员男生 浏览:455
戴尔文件夹内文件怎么置顶 浏览:582
云服务器6m网速 浏览:722
vivo手机中国联通服务器地址 浏览:862
工程总控编译失败 浏览:706
燕赵红枫app如何下载 浏览:867
php查杀软件 浏览:878
教育管理学pdf 浏览:547
服务器均衡怎么使用 浏览:626
linux中jps 浏览:954
单片机实验感想 浏览:561
程序员级别数学算法逻辑 浏览:900
2k21公园怎么换服务器 浏览:724
php释放数据库连接 浏览:722
php网页抓取工具 浏览:726
android设置对齐方式 浏览:23