ユーザー情報を配列に格納し、ループを使用して mysql データベースに入力します。ただし、場合によっては、個々のユーザーの情報が 2 回入力されることがあります。論理エラーがどこにあるのかわかりません。いくつか教えてください。アドバイス:
ロジックコードは次のとおりです
現時点で奇妙なのは、個々のユーザーが入力した情報が常に 2 回実行されることです (たとえば、送信された配列には 5 つの要素しかありませんが、データベースへのエントリによって 10 個のレコードが生成されます)
エントリの 90% は正常です。これを行うのは一部のユーザーだけです。ガイダンスを提供してください。
これは、location.href を使用してジャンプすると発生します。一部のブラウザでは、更新されるとすぐにフォームが再送信される場合があります。いくつかの例を示します。
ajax 更新なし
フロントエンドが送信すると、バックエンドはトークンを生成し、それをセッションに保存します。バックエンドに送信すると、2 つのトークンが比較されます。
-
検証用データベース
バックエンドは 301 または 302 を使用してジャンプします
論理的には特別な問題は見当たりません。フロントエンドが 2 つのリクエストを送信した可能性があるとしか言えません。一般的に、データを挿入するときに、ユーザーがデータベースに存在するかどうかが判断されますが、実際には存在していました。この判断をしなかったことが、10 個のレコード
を表示させる原因にもなりました。あなたが考えるべきことは次のとおりです:
リーリー挿入する前に、少なくとも一意のインデックスを使用してデータベースの値を判断します。
個別の入力エラーの場合は、$data 内のデータによって異なります。