我一直在研究这个问题,它让我发疯!
所以我有一个注册 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。