我一直在研究这个问题,它让我疯狂!。
所以我有一个注册POST表单,在提交时,它会重定向到同一页面,但我有以下内容:
if (isset($_POST['submit']))
{
//include validation and executing code... (another page)
}
现在代码完美无缺,一切都很好,但我有一个问题。
当用户连续点击两次时,他会收到一条消息,说明已经注册了具有相同电子邮件的用户(第一次点击已经注册了他并将信息插入数据库中)
现在我尝试在按钮标记中禁用带有Onclick="this.RegisterBtn.disabled=1;"
的按钮
我还尝试在表格标签中使用:onSubmit="this.RegisterBtn.disabled=1;"
。
都停止提交表单,不明白为什么。我也试过这个:
onClick="this.RegisterBtn.disabled=1; this.form1.submit();"
现在我想出了一个假设,当一个按钮被禁用时,“isset”功能将返回false,如果这里有经验的人可以确认或帮我解决这个问题,我将非常感激,我只是新的php和所有这些:),
非常感谢
编辑:表单操作为空(重定向到同一页面),代码包含在表单上方。
编辑:当我禁用按钮时,isset($ _ POST ['submit'])总是返回false。
解决方案:好的,我确实解决了这个问题,如果有人遇到同样的问题,我会解决这个问题:
首先,当您禁用该按钮时,isset($ _ POST ['buttonname'])将始终返回false。所以我做了以下事情:
而不是我使用的这个条件:if(!empty($ _ POST)).....包括代码
我使用了onsubmit(在表单标签中).. this.button1.disabled = 1; ,现在一切都很完美:-),表格不能提交两次:D。
答案 0 :(得分:0)
尝试
<input type="submit" name="submit" value="Submit" onclick="this.disabled = true;" />
答案 1 :(得分:0)
忘记搞乱表格。在服务器端使用这些简单的检查: