質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

4668閲覧

登録フォームにてデータを複数ページに渡って受け渡しする方法

Rio12882

総合スコア27

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2017/06/12 06:10

PHPで登録フォームを作成しています。
その際に登録ページが複数ページ存在するので、データをどのように持ち回るかを考えた結果、
いくつか方法が思いついたのですが、どれを採用すればいいか決定的な要素が思いつかなかったので
なにかご教授いただきたいと思い投稿しました。

以下、自分が考えた方法を書きます。
1.inputタグのhiddenタイプで各ページに値を埋め込み。
2.sessionに書き込んで保持。
3.各ページをjavascriptを用いて一つのURLで表示する(複数ページ持ち回らなくてよい)。
4.一ページごとにDBにデータを投げる。

主にセキュリティの観点とPOSTするデータに依る部分があると思うですが、そのほかにも考えるべき判断要素があれば教えていただきたいです。
また実際に、こういった運用をしている等のお話があれば教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

私なら2番でしょうかね。

1は途中で改ざんされる恐れがある。
3はどんな感じになるかわかりませんが、構築が面倒な気がします。
4もありかもしれませんが、不要になったデータの管理が必要になるので、手間暇がかかりますね。

というわけで一番楽な2のセッションでしょうか。

投稿2017/06/12 06:40

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

今ある要件だけであれば、どれを選択してもあまり変わらないと思います。
hidden で実装した場合も、入力値確認を各ページで再利用できるように設計するだけなので、大した手間ではないです。

他の検討要素として、以下があります。
・画面構築方法
・2重投稿対策
・ページ戻り対策
上記の実装では、ワリとメリット/デメリットがはっきりするので、そちらで決めてはいかがでしょうか?

投稿2017/06/12 11:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Rio12882

2017/06/13 05:48

回答ありがとうございます。 回答に対して質問があるのですが、画面構築方法とはどういった意味ですか? そもそもの複数ページに渡る登録フローの画面を変更するということでしょうか? また2重投稿対策というのは、ブラウザでの更新のほかになにか考えられるのでしょうか? 当方、無知なものでよろしければご教授いただきたいです。 よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/06/13 07:07

画面構築というのは、遷移時の画面をどのように構築するか?ということです。 サーバサイドで作って送り出すのか、フロントで作るのか? Rio12882 さんがいうところの 3 にあたると思います。 2重投稿はリンク先のようなことを考える必要があります。 http://qiita.com/syobochim/items/120109315f671918f28d 今回の仕様だと、複数タブを開くような投稿は弾いて良さそうなので、私が実装するなら、以下のように作ると思います。 ・JavaScriptで画面を構築 ・CSRF 用の token をワンタイム token とし、2重投稿対策を兼ねる ・token の有効時間を、通常より少し長めにしておく token の有効時間を伸ばす代わりに、連続アクセスを制限するような仕組みを入れるかもしれません。 余談ですが、hidden 投稿に関しては、以前質問をしたことがあります。 https://teratail.com/questions/74746 世の流れと違う回答がつき少し驚きましたが、納得できる回答でした。
guest

0

予約システムとかでよくありそうな立ち回りですね。ちょっと3はイメージつかないですが、それ以外は対応したことがあります。
おそらく2が最もベターではないかと思います。
1はHTMLソースに出るのでやろうと思えば幾らでも改ざんが可能となりますし、4は仮情報となるので、最後まで完了しなかった場合とか途中でブラウザぷっちんとかした場合に情報が残ってしまいますしね。

投稿2017/06/12 06:23

編集2017/06/12 06:25
m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

2が一般的ではないかと思います。

ないとは思いますが、おっしゃる複数ページでhttp←→httpsを行き来する場合、2では実現できないのでご注意ください。

投稿2017/06/12 11:04

happyhappy

総合スコア346

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問