• 締切済み

モバイル用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でのお作法というか、一般的な構築方法など、よろしければご教示頂けると助かります。

  • CGI
  • 回答数1
  • ありがとう数3

みんなの回答

  • 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は振る舞いではなく、データ量がセオリーなんですね。 別途検討していたユーザ認証の実装で、セッションを利用する事は決定したましたので有意義に利用したいと思います。 ご回答ありがとうございました。 参考にさせて頂きます。

関連するQ&A

  • a.cgi → b.cgiへデータの受渡し方法

    a.cgi → b.cgiへデータの受渡しを行いたいのですが i-modeのHPで,画面入力させた内容を a.cgi → b.cgiに受け渡す方法を教えて下さい。 例?:a.cgiに下記のコーディングでは無理ですよね・・・ $aa=$FORM{'aa'}; print "Location: http:・・・・・i/b.cgi?a=$aa\n\n";

    • ベストアンサー
    • Perl
  • 普通のHTMLの画面からCGIへリンクを貼るには?

    誰か助けてくれる方おしえていただけますでしょうか 何個か質問があります。 ▼一つ目 HTMLでトップページを作りました。 次にCGIでプログラムを作りHTMLを吐き出す”○○○.cgi”を作りました。 トップページ(HTML)から○○○.cgiへリンクを貼る方法をおしえてもらえないでしょうか? 現在の対応としては・・ ●普通にリンクを貼ってみましたが、ファイルをダウンロードする格好になってしまいました。 ▼二つ目 perlとmysqlを使ってCGIを作っています。内容的には、必要なデータを登録し、それを検索する作業を作っています。キーワードの検索をした時に引っかかってきた内容を一覧画面に表示させる時に、○×件ごとに画面に表示させたいのですが方法が分かりません。 例えば検索結果を10件ごとに画面に表示させるにはどのようにしたらよいのでしょうか? どうか教えて下さい。 ▼三つ目 先ほどと状況適には変りませんが、今度は情報を登録する時の事です。 情報をインプットボックスに入力してもらいそれをmysqlのDBに格納するようにしています。しかし入力する手間を省くためにコンボボックスやチェックボックスなどに代入できる物はしたいと考えています。 しかし普通にやったのではだめなのでしょうか? 又一度入力したデータを変更があったために少し入力データを編集できるようにしています。 どうかおしえていただけないでしょうか 文章が長々となってしまいましたがどうぞ助けて下さい。(回答して頂いた方にはすぐにお礼、補足説明などをさせて頂きます。)

    • 締切済み
    • CGI
  • URL登録できる無料CGI探してます

    HTMLやCSSは分かるのですが、CGIのプログラミングはできないので、 下記のことができる無料のCGIを探しています:  ・タイトル、画像、コメント、URLを登録し、表示したい。  ・URLはできれば「こちらへ」などの画像ボタンに対して   リンクを張る形で出力したい。  ・ロックのかかる管理画面から登録、削除、再編集したい。  ・CSSや管理画面から、ある程度デザインを変えたりできる。 ・・・タイトル・画像・コメントを登録するアルバムタイプのCGIは いくつか見つけたのですが、URLを登録できるものは 見当たりませんでした。もしご存知でしたらよろしくお願い致します!

  • 携帯端末用アクセス解析CGI

    はじめまして。 よろしくお願い致します。 携帯サイトを運営しているのですが、つい先日から異様にアクセスが増加する現象がおきました。 そこで、どこのリンクから訪れているのか、アクセス解析をしたいと思いCGIを探しています。 どのアクセス解析CGIを見ても、リンク元もURLを取得するにはJavaScriptを使用しているので、i-modeやJ-SKYからのリンク元のURLを取得することができません。 JavaScriptを使用しないで、リンク元のURLを取得することはできないのでしょうか? かなり探してみましたが、見つからなかったので不可能な気もするのですが、もしJavaScript不使用でリンク元のURLを取得するような、アクセス解析CGIを御存知の方はお教え下さい。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • mixiモバイルの日記

    PCで普通に日記書いてURL載せればURLに直リンクしてくれますが、 モバイル(携帯)だと直リンクされません。 モバイルで閲覧した時にリンクさせる方法ってないのでしょうか?

  • CGIで表示されるページ(hoge.cgi)に

    CGIで表示されるページ(hoge.cgi)に <meta http-equiv="Refresh" content="5;URL=www.abc.com"> とメタタグを記述し、5秒後に指定URL(abc.com)に飛ぶようにしているのですが、 この方法ですとジャンプ先(abc.com)ではリンク元(hoge.cgi)が特定できません。 ジャンプ先でリンク元URLを特定できるようにしたいのですが、何か方法はありませんでしょうか?

    • ベストアンサー
    • CGI
  • javascriptからCGIにデータを持たせるには

    こんがらがってきました。 javascriptにて得た値をhiddenなどに入れてsubmitして次ページに値を引っ張っていくのはわかります。 そうではなく、 たとえば全ページのURLをdocument.referrerで取得して、 <A HREF="next.cgi?maenopage=★">次のページへ</A> のように★の部分に入れてリンクで引っ張っていくのはできないと考えればいいのしたか。 できないと思っていたのですが、自信がなくなって来たので質問させていただきました。 #「絶対できません」という断言など含めてアドバイスを。 (^^;

  • cgiで作られた画像掲示板がありますが

    cgiで作られた画像掲示板がありますが http://xxx...cgi-bin/imgboard.cgi (xxxは伏せてあります) というURLがあります ここの掲示板では5スレッドほど1htmlに表示しています そして、次の5スレッドほどをみたいときには imgboard.cgi というボタンを クリックしないと次の5スレッドが見れないです 何がしたいかというと このimgboard.cgi のボタンを押すという処理で 次のHTMLが表示されるので、この処理をプログラム(C/C++)で実装したいです ほかの掲示板では 1.htm 2.htm 3.htm とあり htm を直接呼べたのですが cgiだとこの直接呼び出すことができません どのようにして、プログラムでcgiを操作し次のhtmを呼び出すのでしょうか?

    • 締切済み
    • CGI
  • <a href=**?***=***>をGET方式で

    <a href="abcd.cgi?mode1=1&mode2=2&mode3=3&mode4=4&mode5=5" > としたら、このままではGET方式でデータの受け渡しが行われますよね?そうではなく、テキストリンクでPOST方式でのデータの受け渡しをしたい場合はどうすればいいですか?その際、リンクにマウスを乗せたときにブラウザ左下にリンク先のURLが出るのも避けたいです。(←無理・もしくは実装が面倒ならこれはいいです。)submitボタンは使わない方向でお願いします。 GET方式だと、履歴に****?mode1=1&mode2=2&mode3=3&… と表示されてしまうようなので、<a href=....>リンクでなんとかそれを無くしたいという事情で質問しまた。

    • ベストアンサー
    • HTML
  • CGIにデータを渡すには?

    現在ある検索CGIに、Flash上でユーザーに入力してもらった文字を渡したいです。 現在、検索ページのURL欄は、http://hogehoge.com/kensaku.cgi?search=XXXXXとなっています。 このXXXXXの引数は、現状HTMLのフォームタグで渡していますが、これをFlashで渡すようにしたいです。 色々見て、色々やりましたがうまく出来ません。 まず、テキスト入力で、テキスト入力ボックスを配置し、その関数をsearchとしました。 次に、ボタンを配置し、そのアクションスクリプトに、 on(press){ getURL("http://hogehoge.com/kensaku.cgi","search","GET") } と入れました。 実際にswfを書き出し、テストすると、入力した文字+他のHTMLが吐き出されます。。 <p aligh=left>XXX</p> のような。。つまり、「XXX」ではなく、「<p aligh=left>XXX</p>」という文字列で検索されてしまいます。 これら不要なタグ(「<p aligh=left> </p>」の部分)は、テキストボックスのタグみたいです。 Flash上で文字の大きさやフォントを変えると、これらタグも変わります。 なぜこんなのが出てくるのか、どうやったらいいのか、行き詰まりました。 教えて下さい。

    • ベストアンサー
    • Flash