如何避免表单的重复提交

w小青青

w小青青

2016-01-29 13:03

如何避免表单的重复提交,如何避免表单的重复提交

转自:http://www1.blog.163.com/article/-Bov--vjmSMl.html

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

你是否遇到过重复提交的问题?要解决这个问题其实并不难。这里有一个简单的方法避免同一表单的重复提交。
首先,我们可以定义一个session变量用来保存一个表单的提交序列号。这里我定义为$userLastAction。然后在表单里加入一个hidden变量,把值设为$userLastAction+1:
<input type=Hidden name=lastAction value=<? =$userLastAction+1 ?
最后,在处理提交之前判断表单是否已被提交过:
if($lastAction$userLastAction and inputIsValid(...)){
$userLastAction++; // 序列号加1
// 处理表单数据
}

原文:
Avoid multiple form submissions
Submitted By: Douglas E. Cook
Date: 07/26/00 19:46
Does your database suffer from "duplicate post" syndrome? The cure isn't too difficult. Here is a simple way to prevent users from submitting the same form multiple times.

First, declare a session variable to store a serial number for each form. I call mine "$userLastAction." Then, in every form where duplicate submission is a problem, include a hidden field, and set the value to $userLastAction+1:

<INPUT TYPE=HIDDEN NAME=lastAction VALUE=<?= $userLastAction+1 ?

Finally, verify that the form has not been previously submitted before acting on the submission:

if($lastAction$userLastAction and inputIsValid(...)){
$userLastAction++; // Increment serial number
// Act on form here
}

译自:phpbuilder
这只是一个小技巧,用来避免一个表单的重复提交。这样多少可以防止一些灌水的现象,另外有时候由于网络状况等原因用户不知道提交是否成功,也会再次提交同一份表单。
这个技巧的主要原理是不允许用户回退后再次提交,也就是说回退后修改再提交也是不允许的,而且也不能避免Ctrl-C/Ctrl-V的灌水办法。究竟有没有用,还是看各位站长的喜好了。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)

展开更多 50%)
分享

猜你喜欢

如何避免表单的重复提交

PHP
如何避免表单的重复提交

避免表单的重复提交又一方法(js)

ASP
避免表单的重复提交又一方法(js)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

jquery 防止表单重复提交代码

Web开发
jquery 防止表单重复提交代码

asp中如何限制重复提交同一表单

ASP
asp中如何限制重复提交同一表单

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JSP(Struts)避免Form重复提交的几种方案

Web开发
JSP(Struts)避免Form重复提交的几种方案

Jquery Validation插件防止重复提交表单的解决方法

Web开发
Jquery Validation插件防止重复提交表单的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《亚莎的工作室加强版》白金攻略与简单心得

《亚莎的工作室加强版》白金攻略与简单心得

一个用纯AS写的正态曲线画法

一个用纯AS写的正态曲线画法
下拉加载更多内容 ↓