• 締切済み

モバイル用CGIでのデータの受け渡し方について

モバイルサイト用動的ページ(CGI)設計にて、以下の画面遷移でのデータ受け渡し方について悩んでおります。 入力画面1→入力画面2→確認画面→登録完了画面 この場合、入力画面2には 「戻る」、「次へ」ボタン(もしくはリンク)を実装するわけですが、 入力画面1の情報を保持しつつ「戻る」と、 入力画面1の情報を保持しつつ入力画面2の情報を引き継いで「次へ」を実現するには、どのように情報を保持し、どの様に渡せばよいのでしょう? docomo様i-modeの「お客様サポート」サイトを参照すると、 「戻る」ボタンはリンクで表示しurlにSTEP1画面へのURL+STEP1画面の情報を編集し、 「次へ」の情報はfromのactionに確認画面へのurl、formの内側にhiddenでSTEP1画面の情報を編集で送信という方法でした。 シンプルに書くと、「戻る」はget形式で、「次へ」はpost形式でデータの受け渡しを行っているようです。 私もi-modeと同様の実装方法を思いついたですが、上記方法が正しいのか?本当はもっと別の良い方法があるのではないかと悩んでおります。 わかりづらい文章で大変申し訳ございません。 モバイル用cgiでのお作法というか、一般的な構築方法など、よろしければご教示頂けると助かります。

みんなの回答

  • nerumako
  • ベストアンサー率84% (11/13)
回答No.1

データの受け渡しにGETを使うかPOSTを使うかは 受け渡すデータ量で決定するのがセオリーではないでしょうか。 あとはデータ量がGETの範囲を超えているけど 見た目的にformボタンではなくテキストリンクにしたいとか、 i-modeなどはだいたい100KBまでブラウザで表示できるのでそれを超える場合(テキストではまず無いと思いますが)、一度ファイルに書き出してしまうしか無いと思います。 その場合はテキストリンクのクエリにセッションIDを持たせる事で実現できますよね。 モバイルサイトに関してはパケット代節約と表示を高速にする目的のユーザービリティの為か?セッションIDでデータを管理する傾向が多く見られる気がします。 特にPHPに関してはPHP4からセッション管理機構が実装されてるようですので、それもあるかもしれません。 参考までに、自作でセッション管理する場合は下記のような感じでどうでしょう。 入力画面1  ⇒セッションIDが無いならば何かユニークなIDを新規生成  ⇒「次へ」のリンクのクエリにIDを仕込む  ⇒入力完了で「次へ」を押す  ⇒セッションIDつきのファイルネームで入力したデータを保存 入力画面2  ⇒★クエリからセッションIDを受け取る  ⇒「戻る」「次へ」のリンクのクエリに受け取ったセッションIDを仕込む  ⇒★該当セッションファイルからデータ取得  ⇒★入力画面2のデータがあれば画面内に配置  ⇒入力完了で「戻る」または「次へ」を押す  ⇒セッションIDつきのファイルネームでデータを保存 こんな感じでしょうか。 入力画面2で「戻る」を押した場合は入力画面1でも★印の操作が必要ですね。 セッションファイル削除のタイミングはご自由に。 ご質問からちょっと日が経っているので解決済みかもしれませんがご参考までに。

akikoba_20
質問者

お礼

nerumako様 だいぶ返信が遅くなって申し訳ございませんでした。 しばらく回答が投稿されなかったので、投稿したのも忘れていた次第です。 POST or Getは振る舞いではなく、データ量がセオリーなんですね。 別途検討していたユーザ認証の実装で、セッションを利用する事は決定したましたので有意義に利用したいと思います。 ご回答ありがとうございました。 参考にさせて頂きます。