0

私のページでは、ユーザーがコードを送信した後、スクリプトがデータベースに新しいレコードを作成します。コードを送信した後、ユーザーが更新をクリックすると、データベースに重複したレコードが作成されます。更新を 10 回押すと、同じデータで 10 件のレコードが作成されます...

ページを 2 回目に更新しないようにする方法はありますか?? または、ページの更新回数を制限するには? この状況を回避するには、どのような解決策を適用できますか?

前もって感謝します。

4

5 に答える 5

0

フォームを生成する PHP スクリプトは、それを処理するものと同じようです。フォームを処理するために別の PHP スクリプトを設定することを検討することをお勧めします。例えば:

<form action="action_handler.php" method="post">

次に、 の最後でaction_handler.php、次のように元のページにリダイレクトします。

header('Location: original_page.php');
于 2013-05-27T06:39:20.047 に答える
0

レコードがデータベースに保存されたら、使用header()して同じページにリダイレクトします。

この質問への回答を確認してください。おそらく同じコードを使用できます。

于 2013-05-27T06:40:01.603 に答える
0

単純なものはunset($_POST["data"]) 、データベースに挿入した後か、試してみることですheader('location:.')

于 2013-05-27T06:41:38.373 に答える
0

POST データを扱うときは、常に POST/REDIRECT/GET セットアップ ( Wikipedia ) を使用する必要があります。この方法では、ユーザーが宛先ページを更新しても、更新以外には何も起こりません。

リダイレクト メソッドの最善の方法は、ステータス コード 303 ( HTTP ステータス コード) を使用することです。これは、POST データが受信、処理され、ユーザーが「応答」のために新しいページに移動する必要があることをブラウザーに通知します。ユーザーが「戻る」ボタンを押すと、そのページが利用できなくなった、または有効ではないというメッセージが表示されます (これにより、そのルートを介した再投稿が無効になります)。

この例を使用して、別のページにリダイレクトできます (かなり一般的な例ですが、使用できるベースライン コードがあります)。

header("HTTP/1.1 303 See Other");
header("Location: http://www.yourdomain.com/desitnation.php");
于 2013-05-27T06:47:21.473 に答える