技術の話をするところ2007-03-01PRGパターンをPHPで実装してみるWeb簡単にいうとPOSTで遷移した先のページで更新ボタンを押すともう一度POSTしますか?って聞かれる問題を解消できる実装パターンとして、PRGパターンというものがあります。PRGパターンについては以下を参照してください。ExtensionのWikiのPRGパターンについてこちらのP13,14あたりご覧ください。私自身もPRGパターンのコードを学ぶため、PHP4でどのようになるか実装してみました。問題を確認してみるまず、簡単な入力画面から表示画面に遷移するアプリを作ってみたいと思います。何も考えず通常の実装をおこなってみます。?><br/></BODY></HTML>まず、userInput.phpから適当に値を入れてsubmitしてください。遷移先のページで更新ボタンを押す。一回POSTするか聞かれます。?><br/></BODY></HTML>今度は、更新ボタンを押されても問題なく再表示されるはずです。リダイレクトしているのにGETパラメータが指定されていない!?GETパラメータ付でリダイレクトさせるとURLが変になるので、値はセッション経由で遷移先に渡すようです。リダイレクトした先でセッションをサクッと消してしまうと、更新ボタンが押されたときに値がないので表示できなくなります。セッションに置いておくしかないと思います。画面数が多いアプリではセッションが膨れ上がらないように適当なタイミングで消去が必要になります。TOPページに戻ったら削除とか、ユーザ管理から請求管理にジャンプしたら消すとか。ユースケースの切換え時に消すという感じです。Teedaではこのようなことによく配慮して実装されていますね。ほんとによくできています。Sourcingを学ぶための教材ServiceとDCIについて月別アーカイブはてなブログをはじめよう!j5ik2oさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。