php防止刷新
Ⅰ php中如何防止刷新一次提交一次
1.session记录
submit.php为发送页面,在这个页面上设置一个session变量,,并作为隐藏域和表单一起发送到,submitdeal.php页面..在服务器端把post上来的隐藏变量和服务器端记录的session变量进行对比,,比如一样,则写入数据库并清除session,这样用户刷新页面,两个值不相等提示错误或跳转
优点:不用用户输入验证码,
缺点:表单容易被复制
2.验证码
原理和第一种一样,,只是session数据不作为隐藏域提交,,而是让用户填写,大多数网站都彩用,,有文字验证码和图片验证码,,图片验证码安全性高..别
3.IP绑定
提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库,,
4.cookie
客户提交后处理程序先检索客户端有没有设置cookie,如果有,则不重复提交,如果没有,则写数据,,再写个cookie;
说得不是很明白,希望你能看明白一点点...图片验证码最常用
Ⅱ PHP怎么防刷新文章点击数
使用 SESSION,参考资料:
在进行数据处理和保存前,首先判断浏览器的获得页面方式。使用$_SERVER
["REQUEST_METHOD"]变量来获得浏览器的获得页面方式。检查其是否为”POST”。在
脚本中使用session来记录用户是否通过正常途径(即填写提交内容的页面)来提
交数据。或使用$_SERVER["HTTP_REFERER"]来检测,但不推荐这样做。因为部分浏
览器没有设置REFERER,有部分防火墙也会屏蔽REFERER。另外,我们也要对提交内
容检查,看数据库中是否有重复内容。以留言本为例,使用Session进行判定:
填写浏览内容的页面中,我们在最前端加上:
$_SESSION["allowgbookpost"]=time(); //登记填写时的时间
在接受留言数据并保存的页面中我们在进行数据处理前我们也用Session进行
以下处理:
if(strtoupper($_SERVER["REQUEST_METHOD"])!=”POST”){ die("错误:请勿在外
部提交。"); } //检查页面获得方法是否为POST
if(!isset($_SESSION["allowgbookpost"]) or
(time()-$_SESSION["allowgbookpost"] < 10)){ die("错误:请勿在外部提交。
"); } //检查留言填写时的时间
if(isset($_SESSION["gbookposttime"]) and
(time()-$_SESSION["gbookposttime"] < 120)){ die("错误:两次提交留言的间
隔不得少于 2 分钟。"); } //检查留言间隔
unset($_SESSION["allowgbookpost"]); //注销allowgbookpost变量以防止一次进
入填写页面多次进行提交
$_SESSION["gbookposttime"]=time(); //登记发送留言的时间,防止灌水或恶意攻击
...
数据处理及保存
...
Ⅲ 如何防止刷新页面带来的浏览次数的增加 - PHP进阶讨论
用COOKIE记录用户最后一次访问的页面地址和时间当请求新页面时,判断请求页面的地址与COOKIE中记录的最后一次访问页面地址是否相同。如果相同,在判断此此请求的时间与COOKIE的时间进行比较,如果时间差小于N秒,就可以认为用户是在刷新。如果不是刷新,就更新COOKIE中的页面地址和访问时间
Ⅳ php 如何避免刷新页面重复插入数据到数据库
每次进入提交的页面,给一个session,为了避免重复,session的key可以是随机的。
在表单填写页面
<?php
session_start(); // 启用session
$time = time();
$key = 'sess_' . $time; // 根据时间生成一个随机的session key
$_SESSION[$key] = $time; // 设置session的值
?>
<!--{通过隐藏表单将 session 的 key传递到服务端处理}-->
<input type="hidden" name="session_key" value="<?php echo $time;?>" />
处理页面
<?php
session_start(); // 启用session
$key = $_POST['session_key'];
if(!$key || $_SESSION[$key] != substr($key, 5)){
// 如果没有传 session_key 参数
// 或者 session_key 参数值截断 sess_后的数字 与 session参数值不匹配
unset($_SESSION[$key]); // 删除 session 值
// 然后考虑是否要提示错误,或者转入另一个页面
exit(); // 终止页面代码执行
}
// 下面进行数据写操作
// 数据操作完成后,删除session
unset($_SESSION[$key]);
// 后续操作
?>
$########################
一个页面也是一样的,我给你的只是一个思维,
具体如何实现,你要根据自己的实际情况去处理
很多东西都不是通用的
另外,不管多少个页面,必然包含两个部分,一部分是表单填写,一部分是数据处理,这个跟多少个页面无关~~就看你是否能够理解这段代码的意义,如果不理解的话,嵌套进去也没啥用,能够理解的话,或许你能够找出更适合自己的解决方案
Ⅳ php防止刷新
<?php
session_start();
$allow_sep = "3";
if (isset($_SESSION["post_sep"]))
{
if (time() - $_SESSION["post_sep"] < $allow_sep)
{
exit("请不要反复刷新");
}
else
{
$_SESSION["post_sep"] = time();
}
}
else
{
$_SESSION["post_sep"] = time();
}
?>
之所以不能用cookie,是为了防止关闭浏览器的cookie后恶意刷新
Ⅵ php怎么禁止浏览器刷新
这个要用js来做
Ⅶ 用php语言写程序,怎样防止刷新页面
你是要完全防恶意刷新还是为了减轻服务器压力?
完全防止恶意刷新。使用 SESSION 或者 COOKIE。记录访问页面的时间。如果小于3秒就中断程序运行。显示空白页。
减轻服务器压力的话。你可以使用输出缓存功能。
代码跟据原理自己写就行了。本来就不复杂。
Ⅷ php如何避免刷新页面重复提交
可以采用ajax配合使用php可以防止刷新页面重复提交
也可以使用框架同样可以防止
你直接访问数据处理页面的时候,$_POST['title'],$_POST['num] 应该是空值,所以你增加一个判断,必须有具体的值,再进行sql操作。
Ⅸ PHP避免刷新页面重复提交
这个解决的办法是在 x.php 中加入跳转代码,使页面跳转就好了,例如,html->x.php->数据处理后跳转到成功页面->success.html
Ⅹ php怎样防止刷新重复提交
通常是在表单中增加一个验证码。这是防无意刷新的简便方法。一刷新,验证码自动更新,处理程序就会检测到验证码不对。