2017-02-03 17 views
0

私は現在、毎日のスケジュール/レポートを整理する必要がある学校プロジェクトのウェブサイトをプログラミングしています。私はPHPに次のように挿入しています :状況は以下の通りPHPは最新の状態で挿入しています

提出する場合

$sqlinserttb = "INSERT INTO tagesberichte (`TbID`, `Tagesberichte`, `Datum`) VALUES ('DEFAULT', '".$tagesbericht."', '".$datum."');"; 

はそれを挿入し、ヒットされています。 問題は、F5キーを押すかブラウザを手動で更新するときに、最後に使用された入力でページが再度挿入されることです。

私は何を欠席しましたか?

+3

質問をサポートするための十分なコードがありません。しかし、その解決策はかなり単純です。 –

+0

$ tagesberichtと$ datumはどこで入手できますか? – AbraCadaver

+0

これはブラウザの機能です。投稿ページを更新すると、投稿情報が再送信されます。ユーザーがこれをやってしまうのを防ぐために、名前を付けてもう一度ページにリダイレクトすることができます。次のようなものです: 'header(" location: "。$ _ SERVER ['PHP_SELF']); –

答えて

0

header("location: <path to your self-submitting form>");を入力したら、新しいフォームが表示されますさっぱり感がなくても、もう一度投稿する必要はありません。

+0

ありがとう、これはそれを解決しました! – Reun

0

あなたが説明したユースケースから、あなたは自分でフォームを送信していることを理解しています(同じページに送信し、リクエストを処理しています)。要求変数をphp sessionsに格納してから、受信した要求データをセッション内のデータでチェックすることができます(セッションが存在する場合)。同じ場合は、エラーメッセージを表示し、それ以外の場合は挿入して、リクエストデータでセッションを設定します。

+0

はい、私はフォームを提出するので、基本的にはセッションを開始してから、ユーザーが入力したすべてのSQL入力をセッションにテキストエリアに入力しますか? – Reun

+0

いいえ、セッションが存在するかどうか最初に確認します。存在する場合は、要求データと比較します。すべてが同じ場合は、エラーを表示します。それ以外の場合は、sqlの挿入を行い、要求データをセッションに追加します。 – Rajesh

0

URLをリフレッシュすると、対応するすべてのデータは、ユーザー自身が投稿したときにPHPスクリプトに送信されます。 1. postメソッドを使用して、結果をサーバーに送信します。ページをリフレッシュしても状況は除外されませんが、ほとんどのブラウザはユーザーに「すべてのデータをサーバーに再送信しますか?」と尋ねます。 2. PHPスクリプトが入力したページの後にリダイレクトを使用します。この場合、ブラウザには再送するデータはありません。しかし、ユーザーはpreviosページに戻ってデータを再送信することができます。 3.また、 'meta http-equiv = "Cache-Control" ...変数を使用してページの有効期限を切ることができます

+0

こんにちは、私は既にそれをサーバーに投稿して送信しています。キャッシュコントロールのヒントをありがとう、それを調べます! – Reun

関連する問題