php利用cookie防止重复提交解决办法
原理:如果数据通过了上边的两次验证,说明数据是合法有效的数据,这时候我们把提交的数据串接为一个字符串,并用MD5加密后得到一个MD5的值.
接着我们把这个值通过Cookie放进客户端,当用户下一次提交表单的时候我们就重新操作这一步,并且读出Cookie中的MD5值进行比较,如果相同就可断定用户提交两次提交的表单是相同的,否则替换这个Cookie!
代码如下:
$lasthash = $HTTP_COOKIE_VARS["lasthash"]; //读取上一次设置的Cookie值 
if(count($HTTP_POST_VARS)) {  
$long = "";  
while(list($key,$value)=each($HTTP_POST_VARS))$long.=$value;  
$hash = md5($long);  
    setcookie("lasthash",$hash,time()+60*60*24*30); //重新设置cookie 
}  
if($lasthash!=$hash) {  
// 如果两次的MD5值不一样就对数据进行进一步操作  
}  
else {  
//如果两次MD5的值相同,告知用户提交失败  
}  
//…… 
?>
php利用cookie防止重复提交解决办法的更多相关文章
- struts2-token防止重复提交解决办法
		
1.配置struts.xml全局防重复提交拦截器栈: <struts> <package name="module" extends="struts-d ...
 - AJAX防重复提交的办法总结
		
最近的维护公司的一个代理商平台的时候,客服人员一直反映说的统计信息的时候有重复数据,平台一直都很正常,这个功能是最近新进的一个实习生同事写的功能,然后就排查问题人所在,发现新的这个模块的AJAX提交数 ...
 - 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
		
单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...
 - jQuery绑定和解绑点击事件及重复绑定解决办法
		
原文地址:http://www.111cn.net/wy/jquery/47597.htm 绑点击事件这个是jquery一个常用的功能,如click,unbind等等这些事件绑定事情,但还有很多朋友不 ...
 - Android重复依赖解决办法
		
参考文章:https://blog.csdn.net/qq_24216407/article/details/72842614 在build.gradle引用了Vlc的安卓包:de.mrmaffen: ...
 - 【问题】 cookie 不保存特殊字符 解决办法
		
遇到的问题: 在做项目,用geolocation 获取经纬度,格式如(23.1133,113.2552) ,想保存到cookie中备用.但读取cookie出来之后发现逗号变成了 %2c. 找到的原因 ...
 - MVC Ajax.BeginForm重复提交解决方法
		
mvc使用MVC Ajax.BeginForm提交的时候有重复提交结果的时候检查相关js文件引用情况, 其中mvc4注意 1 2 3 4 @Scripts.Render("~/bundles ...
 - jquery事件重复绑定解决办法
		
一$.fn.live 重复绑定 解决:使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件. //先通过die()方法解除,再通过 ...
 - 向后台提交数据:利用cookie加session提交更多数据,
		
个人逻辑,可能考虑不全面,各位看到后留言,我修改啊 实现效果:浏览器第一次访问提交用户名,后台验证通过,生成随机字符串,和用户名组成字典,保存到服务器,把随机字符串设置成cookie发给浏览器,同一个 ...
 
随机推荐
- Codeforces Round #402 (Div. 2) A+B+C+D
			
Codeforces Round #402 (Div. 2) A. Pupils Redistribution 模拟大法好.两个数列分别含有n个数x(1<=x<=5) .现在要求交换一些数 ...
 - POJ-2078 Matrix,暴力枚举!
			
Matrix 题意:一个n*n的数字矩阵,每次操作可以对任意一行或者一列进行循 ...
 - [Kubernetes]容器健康检查和恢复机制
			
在Kubernetes中,可以为Pod里的容器定义一个健康检查探针(Probe),这样Kubernetes会根据这个Probe的返回值决定这个容器的状态,而不是直接以容器是否允许(来自Docker返回 ...
 - 九度oj 题目1342:寻找最长合法括号序列II
			
题目描述: 假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给你的任务便是去掉其中的一些括号,使得剩下的括号序列能够左右括号匹配且长度最长,即 ...
 - Replication and Triggers
			
参考官网:https://dev.mysql.com/doc/refman/5.7/en/replication-features-triggers.html 需要了解复制和触发器关系的背景: 程序变 ...
 - vue     v-dialogDrag: 弹窗拖拽
			
Vue.directive('dialogDrag', { inserted:function(el) { const dragDom = el.querySelector('.jsPropupLay ...
 - iOS学习笔记05-触摸事件
			
一.事件分发处理[由外到内] 在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplication会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用 ...
 - BZOJ 2179 FFT快速傅立叶 ——FFT
			
[题目分析] 快速傅里叶变换用于高精度乘法. 其实本质就是循环卷积的计算,也就是多项式的乘法. 两次蝴蝶变换. 二进制取反化递归为迭代. 单位根的巧妙取值,是的复杂度成为了nlogn 范德蒙矩阵计算逆 ...
 - 常州模拟赛d2t3 小X的佛光
			
平日里最喜欢做的事就是蒸发学水.[题目描述]小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X 城时只建造 N ...
 - Java面试题集(三)
			
Jdk与jre的区别? Java运行是环境(jre)是将要执行java程序的java虚拟机. Java开发工具包(jdk)是完整的java软件开发包,包含jre,编译器和其他工具如javaDoc,ja ...