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程序设计有所帮助。
相关推荐
-
php 表单数据的获取代码
复制代码 代码如下: <html> <head> <title>Form</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <form action="post.php" method="get" name
-
解决php表单重复提交实现方法
重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦. <?php /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........
-
PHP使用token防止表单重复提交的方法
本文实例讲述了PHP使用token防止表单重复提交的方法.分享给大家供大家参考,具体如下: <?php /* * PHP使用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION
-
ThinkPHP 防止表单重复提交的方法
然而有一种情况,是防止不了的: 用户提交表单以后,点击浏览器后退按钮返回表单页面,这个时候浏览器会直接从缓存中取出页面,因此token验证一定是通不过的. 网上有许多种办法可以绕过这个问题,比如用location.replace()方法来替换当前历史记录,但是这样仍然有瑕疵.极端的情况,若用户在页面间切换多次,那么多点几次后退按钮很可能又回到了上一个表单页面. 解决办法是在http头中设置Cache-Control: no-cache, no-store.然而我尝试了无论是在页面head中添加
-
php中一个完整表单处理实现代码
一个完整表单处理 下面我们将创建一个复杂的表单,代码如下所示. 复制代码 代码如下: <form action="someform.php" method="post"> <table width="541" border="0"> <tr> <td width="26%">姓名:</td> <td width="74%"
-
php中如何防止表单的重复提交
复制代码 代码如下: <?php/* * php中如何防止表单的重复提交 */session_start();if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........//写入数据库操作} else {//已经有第一次写入后的操作,也就不再写入数据库
-
php防止用户重复提交表单
我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 效果图: 那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手: 首先从前端做限制.前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效. 第二,我们可以在提交后做redirect页面重定向,
-
php解决和避免form表单重复提交的几种方法
前言 为什么要避免form表单被重复提交呢?因为我们不想让我们的服务器重复处理没必要的数据,同时我们也是避免我们的数据库产生重复的数据,避免表单重复提交也是让我们的网站更安全的一种表现. 先看一下有哪些情况下回导致表单重复提交呢,知道哪些情况下可能会出现表单重复提交就可以从根源处理表单重复提交的情况了. 下面的情况就会导致表单重复提交: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 网页被恶
-
PHP 表单提交给自己
在大部分情况下我们指定另外一个来处理表单内容的URL地址给Action属性,但也有部分情况是需要将表单数据提交给自己的.这时候我们应该如何指定Action属性值呢?<?php if (isset($_POST['action']) && $_POST['action'] == 'submitted') { print '<pre>'; print_r($_POST); print '<a href="'. $_SERVER['PHP_SEL
-
PHP防止表单重复提交的几种常用方法汇总
本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值.具体方法如下: 1. 使用JS让按钮在点击一次后禁用(disable).采用这种方法可以防止多次点击的发生,实现方式较简单. 缺点是若客户端禁止JavaScript脚本,则失效. 2. 在提交成功后执行页面重定向(redirect).转到提交成功信息页面. 特点:避免F5重复提交,消除浏览器前进和后退按钮可导致的同样问题. 3. 表单隐藏域中存放session(表单被请求时生成的标记).采用此方法在接
随机推荐
- destoon切换城市后实现logo旁边显示地区名称的方法
- 实例浅析js的this
- SQL Server 2012使用Offset/Fetch Next实现分页数据查询
- CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
- 基于jQuery仿淘宝产品图片放大镜特效
- XHProf报告字段含义的解析
- php xml文件操作实现代码(二)
- Android miniTwitter登录界面开发实例
- ajax+php打造进度条代码[readyState各状态说明]
- javascript获取系统当前时间的方法
- Yii2框架整合Xunsearch搜索引擎的方法
- Java应用程序中创建图像
- jQuery替换节点用法示例(使用replaceWith方法)
- Java基础之隐式转换vs强制转换
- jqPlot jquery的页面图表绘制工具
- 原生JS实现《别踩白块》游戏(兼容IE)
- BootStrap Fileinput上传插件使用实例代码
- 如何利用php+mysql保存和输出文件
- Android通过Path实现搜索按钮和时钟复杂效果
- php实现PDO中捕获SQL语句错误的方法