PHP防刷新的方法
来源:互联网 发布:淘宝战略先锋77正品吗 编辑:程序博客网 时间:2024/05/02 04:34
1.session记录
submit.php为发送页面,在这个页面上设置一个session变量,,并作为隐藏域和表单一起发送到,submitdeal.php页面..在服务器端把post上来的隐藏变量和服务器端记录的session变量进行对比,,比如一样,则写入数据库并清除session,这样用户刷新页面,两个值不相等提示错误或跳转
优点:不用用户输入验证码,
缺点:表单容易被复制
2.验证码
原理和第一种一样,,只是session数据不作为隐藏域提交,,而是让用户填写,大多数网站都彩用,,有文字验证码和图片验证码,,图片验证码安全性高..别
3.IP绑定
提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库,,
4.cookie
客户提交后处理程序先检索客户端有没有设置cookie,如果有,则不重复提交,如果没有,则写数据,,再写个cookie;
例:
方式一
<?php
session_start();
$k=$_GET['k'];
$t=$_GET['t'];
$allowTime = 1800;//防刷新时间
$ip = get_client_ip();
$allowT = md5($ip.$k.$t);
if(!isset($_SESSION[$allowT]))
{
$refresh = true;
$_SESSION[$allowT] = time();
}elseif(time() - $_SESSION[$allowT]>$allowTime){
$refresh = true;
$_SESSION[$allowT] = time();
}else{
$refresh = false;
}
?>
方式二
<?php
session_start();
$allow_sep = "30000";
if (isset($_SESSION["post_sep"]))
{
if (time() - $_SESSION["post_sep"] < $allow_sep)
{
exit("请不要反复刷新");
}
else
{
$_SESSION["post_sep"] = time();
}
}
else
{
$_SESSION["post_sep"] = time();
}
?>
方式三
<?
session_start();
if(!empty($_POST[name])){
$data = $_POST[name];
$tag = $_POST[tag];
if($_SESSION[status]==$tag){
echo $data;
}else{
echo "不允许刷新!";
}
}
$v = mt_rand(1,10000);
?>
<form method="post" name="magic" action="f5.php"><input type="hidden"
name="tag" value="<?=$v?>"><input type=text name="name"><input type="submit" value="submit">
</form>
<?
echo $v;
$_SESSION[status] = $v;
?>
- PHP防刷新的方法
- 防刷新的php文本计数器
- PHP防刷新Solution
- 防刷新方法
- 防刷新重复提交、防后退方法
- 防刷新重复提交、防后退方法
- 防刷新重复提交、防后退方法
- 防刷新重复提交、防后退方法
- 防刷新重复提交、防后退方法
- PHP防SQL注入的方法
- PHP防SQL注入的方法
- php页面防重复提交的方法
- PHP统计网站访问次数防刷新
- js防刷新的倒计时
- Asp.net中防刷新重复提交、防后退方法
- Asp.net中防刷新重复提交、防后退方法
- Asp.net中防刷新重复提交、防后退方法
- php的sessionid可以伪造,不要用来做防刷新处理了!
- [Liunx] VNC(Vnc4Server)方式远程访问Linux主机(适用Debian X版本)
- Java连接Oracle 10g数据库抛IO异常解决办法
- JQuery中对option,radio,checkbox的添加、删除、取值
- [Liunx] VNC方式远程访问Linux主机(适用Cenots 6.X版本)
- ldd中Makefile的解释
- PHP防刷新的方法
- 分享30个开发人员有用的CSS代码片段
- 成大事的九种手段
- 将 ASP.NET MVC3 Razor 项目部署到虚拟主机中
- ZOJ 3675(Trim the Nails)
- [Linux] Linux内存机制
- C语音关键字auto,static,register区别
- 成大事必备九种能力
- USACO历年比赛的数据和解题报告