- ベストアンサー
PHPでページをまたがった変数の渡し方
何かを書き込むページを作った場合に 1・書き込むページ → 2・確認画面 → 3・完了通知画面 1→2は普通にpostで値を渡しますが、2→3の場合は2のページでフォームの形にして hiddenで値を渡すのが通例なのでしょうか。 COOKIE等に入れるのはナンセンスでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
まず、1 → 2 でユーザ入力の検証をすると思うんだけど、 2 → 3 で Cookie か hidden のどちらかを使うとユーザがそのタイミングで関与できるから、データが汚される危険があるよ。 どうせ 1 → 2 でユーザ入力の検証するなら、1 → 2 で既に決定済みのセッション変数を 3 で処理するのが素直かな。
その他の回答 (4)
- yambejp
- ベストアンサー率51% (3827/7415)
>hiddenで値を渡すのが通例なのでしょうか。 セッションで渡す方が最近のシステムでは多いかもしれませんね。 クッキーは制限が大きいので取り回しづらいと思います。 個人的にはhiddenを使うことがおおいです
- mikemike7
- ベストアンサー率87% (97/111)
No1、No2の方が仰っているようにどっちでも良いと思います。 ただNo1の方が記載している通り、CookieをOFFにしている方もいますので、どれだけ大事な情報を記憶するかによりますが、場合によってはログとして保存ということもありかもしれません。 以前に、SQLiteを使ってIPアドレス単位でセッション化させ、受け渡したい情報をログ保存したことがあります。 IPアドレスは一定期間は重複することが少ないし、CookieがOFFでも関係ないですので。 SQLiteはファイルベースのデータベースなので、扱いやすいし、軽いので簡単なログを保存するには良いと思います。 ログ保存をする以上、定期的にメンテナンスする必要はありますけど、確実性は向上するかなと思います。
こんばんは。元PHP開発者です。 携帯電話などの開発の時は、cookieに必要な値を入れて、次のページでDBと照合したりしていました。 別にどっちを使っても良いと思います。 携帯の場合、postできる値にも限りがあったからそういう処理をしたんだと記憶しています。
- 4017B
- ベストアンサー率73% (1336/1814)
いや、どっちでもイイと思いますよ。 ただ、Cookieを使う場合だと、未だにCookie機能を停止して置く事が格好イイと思ってる人も居ますので。そういったUserがアクセスして来た場合、予定の動作をしない事になりますね。 <input type="hidden">~の形ならば、とりあえずHTMLを最低限、読み込ませる事が出来る環境ならば、確実に引数とかを受け渡す事が出来ます。 ただしHTMLソースを読む事で簡単に情報が閲覧者側にも知れますので、重要な情報(個人情報など)は最低限の暗号化処理などが必須になります。しかしこれはCookieの場合も同じ事が言えますので…。まあ、要は好みの問題かと(今時、Cookie機能を切ってるUserは切り捨てても問題無いかと→自己責任というヤツです)。 P.S. Cookieを使う場合は、単純にページ間の情報の受け渡しじゃなくて。複数ページにまたがって、何かサイト全体に影響を与えるような情報を保持する場合に使うのが吉かと。まあいちいちCookie処理を個別に行うのが面倒じゃないのなら、本当にどっちでも良いと思います(笑)。 ああ、でも一応。Cookieには保存出来る文字数制限があるので。あまり大きな情報を扱うには向いてません。