人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでフォワードかリダイレクトか

入力画面から確認画面に画面遷移するとき、入力値にエラーがあった場合の制御の実装についてです

このとき入力画面へ戻したい場合、フォワードが良いでしょうか。リダイレクトが良いでしょうか。
リクエストを引き継ぎたかったのでフォワードで実装してみたのですが、ブラウザに出ているURLは確認画面のURLが残りました。
このURLについてだけ不満に感じています。
このとき(リクエストを引き継いだまま)URLを入力画面のものにする方法はあるでしょうか。
ないのであれば、やはりリクエストはセッションで保持して入力画面へはリダイレクトするべきでしょうか。

一般的にどのようなやり方が良いでしょう


●質問者: redara
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● パパトモ
●100ポイント

フォワードにして画面が描き変わらないのは、キャッシュが表示されて、実際のリクエストが飛んでないからだと思います。ブラウザとプロキシのキャッシュ対策が必要だと思います。

キャッシュが使われてしまっているのかを確認するには、ブラウザのリクエストがWebサーバのアクセスログに記録されているかを確認すれば直ぐに判別できるはずです。

フォワードにする理由は、POSTでパラメータを送信してセション管理を行いたいとおいうことなのだと思いますが、それだとキャッシュの問題で、色々と苦労すると思います。だからと言って、リダイレクトが良いという事でもありませんが・・・


パパトモさんのコメント
一般的には、入力値をチェックするのはJavascriptで行うのだと思います。

redaraさんのコメント
画面自体は切り変わっています。 URLが「http://hoge/input」⇒ 「http://hoge/confirm」となったまま 「http://hoge/confirm」のURLのまま入力画面が表示されていることが、不満だということです URLも「http://hoge/input」に戻したいと思うのですが、気にしすぎですか?

redaraさんのコメント
POSTでパラメータを送信するとキャッシュで苦労する、という意味がわかりませんでした。具体的にどういうことでしょうか。

パパトモさんのコメント
URLが気に入らないなら、http://hoge/input をCGI化して -初回なら(パラメータ無しなら)入力画面を表示 -入力があったら、確認画面を表示 であればURLが confirm ではなくても、つまり input のままでも問題ないような気がします。無理にフォワードやリダイレクトにする必要は無いのではないかと思いますが、いかがでしょうか。 もっとも confirm の意味からすれば、入力できても特別変ではないようにも思いますが・・・

パパトモさんのコメント
POSTでパラメータを送信すると必ずキャッシュで苦労するという事ではありません。ほとんどのブラウザは問題ないと思います。ただ一部のブラウザのバージョンや携帯などで苦労するかもしれないということです。誤解が生まれる書き方でした。すみませんでした。

redaraさんのコメント
そもそものURLの仕様を変えるのも1つの方法ですね。 使っているフレームワークの仕様とも絡んでくるので変更しにくい部分ではあるのですが 検討してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ