私はこの問題に取り組んできましたが、それは私を夢中にさせています!.
だから私は登録POSTフォームを持っています。送信すると、同じページにリダイレクトされますが、次のものがあります:
if (isset($_POST['submit']))
{
//include validation and executing code... (another page)
}
コードは完全に機能するようになりました。すべて問題ありませんが、問題が 1 つあります。
ユーザーが 2 回続けてクリックすると、同じ電子メールを持つユーザーが既に登録されているというメッセージが表示されます (最初のクリックでユーザーが登録され、データベースに情報が挿入されます)。
Onclick="this.RegisterBtn.disabled=1;"
ここで、ボタンタグで : を使用してボタンを無効にしてみましonSubmit="this.RegisterBtn.disabled=1;"
た。また、フォームタグで : を使用してみました。
どちらもフォームの送信を停止しますが、理由はわかりません。私もこれを試しました:
onClick="this.RegisterBtn.disabled=1; this.form1.submit();"
ここで、ボタンが無効になっているときに「isset」関数がfalseを返すという仮定を思いつきました。ここで経験した人がそれを確認するか、この問題を解決するのを手伝ってくれるなら、私は非常に感謝しています。これ :) 、
事前にたくさんのありがとう
編集: フォーム アクションは null (同じページにリダイレクト) で、コードはフォームの上にあります。
編集: ボタンを無効にすると、 isset($_POST['submit']) は常に false を返します。
解決策:わかりました、私はそれを解決しました。誰かが同じ問題に直面している私の投稿にクロスオーバーした場合に備えて、私はそれをどのように解決しましたか:
まず、ボタンを無効にすると、 isset($_POST['buttonname']) は常に false を返します。だから私は次のことをしました:
私が使用したこの条件の代わりに: if (!empty($_POST)) ..... コードを含める
そして、私は(フォームタグで)onsubmitを使用しました.. this.button1.disabled=1; 、そして今ではすべてが完全に機能します:-)、フォームを2回送信することはできません:D.