2012-05-02 13 views
0

http://www.ssaib.co.uk/security-provider-search/の検索機能が動作しており、完全に正常に動作し、結果セットを取得します。しかし、結果を選択し、結果を選択して「more」をクリックしてから、ポストを再送信するのではなく、ページを中断させようと試みます。これについての言及はどこにも見当たりません。POSTイベント後に '戻る'ボタンを使用すると、ページが破損する

すべてのヘルプは非常にあなたがブラウザとして使用している何

答えて

1

を高く評価しますか?

最新のChrome、Firefox、Opera、Safari、Internet Explorerで動作しています。一度戻ると、検索結果が再び表示されます。

編集:

2つのオプションがあります。

まず:

  • ではなくPOSTのGET変数を使用して検索を提出してください。検索エンジンは検索結果をクロールすることができるので、これははるかに優れています。

第二:

それでもPOSTを使用する場合は、スマート検索システムがPOSTを取り除くため、次のようにリダイレクト:search.php」のターゲットURLを持っている

  • フォーム"(またはあなたが使っているもの)
  • 一度search.phpに投稿すると、データベース検索を行い、その検索にユニークな「id」を割り当てます。
  • search.phpは、/ searchresults/'ページ(またはそのe URLに「/ searchresults/23442 /」やGET変数( '/ searchresults /?id = 23442'など)のいずれかの一意のIDを持つようになります。このページには、search.phpスクリプトで検索された検索結果が表示されます。
  • これは、ユーザーが「戻る」をクリックすると、検索結果ページに戻ることを意味します。これには、ユーザーが「戻る」をクリックするたびにデータベースを再度検索する必要がないという利点もあります。ブラウザはヘッダーを介してリダイレクトされたURLに戻ることはないため、ユーザーが2回戻っても何も破らない。
  • しばらくすると、データベースから「古い」検索を無効にするか、ユーザーがその同じIDをもう一度尋ねると再作成する必要があります。
+0

特定のブラウザのみと思われます。それを避けるための回避策があるかどうかは分かりません。私はそれがブラウザのセキュリティ上の欠陥でなければならないと考えましたが、誰かが回避策を知っているかどうかは分かりませんでしたか? –

+0

さて、あなたが持っている主な問題は、何かがフォームの再提出プロセスで競合を引き起こす可能性があることです。これは通常、検索を別の方法で行うことをお勧めします。私は数分で元の回答に説明を投稿します。 – kingmaple

+0

大変うれしいよ –

0

検索にはGETを使用してください。しかし、POSTを使用する場合、は常に(私の意見では)Post/Redirect/Getを使用してください。これは通常、リダイレクト間に状態を維持するためにSESSIONを使用する必要があります。

関連する問題