1

ユーザーはページにいます1.php。送信後、フォームは にリダイレクトされ2.phpます。ここで、ブラウザの戻るボタンが使用されている場合、 page にリダイレクトします3.php

次のようなものはどうですか:

  • 1.php [フォームを送信] =>
  • 3.php [ヘッダー(場所:2.php) ] =>
  • 2.php
4

2 に答える 2

1

あなたはそうしない。これは Web ページの制御外であり、それは良いことです。

「戻る」を押すと、行ったことのないページにリダイレクトされて、ブラウザで制御できる Web サイトになったら不安です。私の最初の本能は、何かが非常に間違っていると思うので、ウイルススキャンなどを行うことです. ユーザーはどのように反応しますか?

編集:提案された解決策で質問を編集しました:「次のようなものはどうですか:1.php [フォームを送信] => 3.php [ヘッダー(場所:2.php)] => 2.php」

HTTP ヘッダーを使用してこれを行うと、一部のブラウザーはそれを履歴内の 1 つのページにマージする場合があります。ただし、JavaScript リダイレクトを使用して行うと機能します。これは、ブラウザがそれらをマージするほどスマートではないためです。また、状態を追跡する必要があります (ユーザーがフォームを送信したのか、戻ってきたのか?)。Cache-Controlヘッダーが適切に設定されていることを確認する必要があります ( no-cache)。これにより、ブラウザーは 3.php をキャッシュしません。そのページは、フォームを 1.php から送信するか、2.php から戻ってくるかによって、同じようには見えません。

ただし、中間に 3.php がまったくなく、1.php で同じ状態追跡をCache-Control行った場合、同等の結果が得られるため、おそらく 3.php はまったく必要ありません。

于 2012-04-05T13:58:39.980 に答える
1

セッションを使用します。セッション変数で最後にアクセスしたページを保持し、ユーザーが戻るボタンを押すと、コードはその変数を読み取ってリダイレクトする必要があります。

しかし、歴史などを当てにしないでください。

また、history.js を試してみることもできます (私はまだその解決策を自分で探しています)。

于 2012-04-05T13:59:42.547 に答える