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


Posted in PHP onDecember 16, 2014

本文实例分析了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 相关文章推荐
PHP中,文件上传
Dec 06 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
解决PHP超大文件下载,断点续传下载的方法详解
Jun 06 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
php检查页面是否被百度收录
Oct 28 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
PHP设计模式(观察者模式)
Jul 07 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 #PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 #PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 #PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 #PHP
php使用ereg验证文件上传的方法
Dec 16 #PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 #PHP
php中最简单的字符串匹配算法
Dec 16 #PHP
You might like
php MySQL与分页效率
2008/06/04 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
python绘制多个曲线的折线图
2020/03/23 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Python中关于浮点数的冷知识
2019/09/22 Python
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
什么是反射?如何实现反射?
2016/07/25 面试题
大学生农村教师实习自我鉴定
2013/09/21 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2016年国培研修日志
2015/11/13 职场文书
Python数据处理的三个实用技巧分享
2022/04/01 Python