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获取金书网的书名的实现代码
Jun 11 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
Codeigniter校验ip地址的方法
Mar 21 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
PHP自定义函数实现格式化秒的方法
Sep 14 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 10 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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简介
2006/10/09 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
php英文单词统计器
2016/06/23 PHP
php封装的验证码类分享
2017/02/26 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
JS动画效果代码3
2008/04/03 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
python复制文件的方法实例详解
2015/05/22 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
python协程之动态添加任务的方法
2019/02/19 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
详解Python3 pickle模块用法
2019/09/16 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
pandas的resample重采样的使用
2020/04/24 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
正规的求职信范文分享
2013/12/11 职场文书
建设投标担保书
2014/05/13 职场文书
文艺演出策划方案
2014/06/07 职场文书
2014年团委工作总结
2014/11/13 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python