php4.x以降とSESSIONについて


一般的なフォーム(入力、確認、登録と言う流れ)を作り
その際にファイルをアップしたいのですが、今まではこちらの様にやっていました。
http://q.hatena.ne.jp/1181097905

しかしファイルの持ち回しが面倒だと感じるので
テキストデータの様にSESSIONに入れたらどうかと思ったのですが、
こういうことをすると何らかの問題があるのでしょうか?

仮に3MBのファイルを同時に10個SESSIONに記憶させても問題は無いのでしょうか?

また、簡単で一般的なおすすめの方法がありましたら教えてください。
複数のファイルを、選択、確認、別の画像に変更、確認、登録...
というよにいったりきたりでも簡単な方法です。

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:2008/05/20 13:08:22
  • 終了:2008/05/21 09:57:17

回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/05/20 17:16:31

ポイント35pt

仮に3MBのファイルを同時に10個SESSIONに記憶させても問題は無いのでしょうか

持ち回るデータ量が3MB単位だとすると、SESSIONで持つのが妥当でしょう。

問題がないかどうかは、サーバに容量が確保できるかどうかにかかってきます。


あとは、SESSIONとほとんど同じことですが、tempに持たせるということもできます。

ただし、接続がコケたときに、保持していたデータを適当な時間で削除するロジックが必要です。

id:worldtravel

ありがとうございます。

ちなみに

cookieでは記憶できるサイズに限界がありますが、

SESSIONの限界はないのでしょうか?

サーバの容量が許す限り。ですか?

2008/05/20 17:44:56
id:guja No.2

guja回答回数40ベストアンサー獲得回数82008/05/21 01:45:02

ポイント35pt

仮に3MBのファイルを同時に10個SESSIONに記憶させても問題は無いのでしょうか?

sessionは、session_idの数十バイト分だけがcookieに保存されるだけで、あとは全てサーバーのリソースに保存されます。

ですので3MBのファイルが何個あっても容量に余裕がある限りは大丈夫です。

(Webであれば同時に何人も接続してくるので、その場合の最大値を考慮する必要はありますが)


私も前に画像をsessionに格納して入力・確認・登録とするページを作ったことがあります。

その際はimgタグで簡単に参照できるように、

sessionに入っている画像データを、画像のcontent-typeを指定してprintする、phpを作成することで対応しました。

<img src="/image.php?file_id=1"> というような感じです。


また、変更の場合は、最初の入力フォームの初期化時にファイルとして持っている画像データをsessionに突っ込むようにすることで、

入力-確認-登録 のページ間では常に画像はsessionに持っている、という規則でプログラムを組むことで、煩雑にならずに開発することができました。


実績はあるということでご参考になれば幸いです。

id:worldtravel

ありがとうございます。

容量さえあれば問題ないと言う事ですね。

これでコードもかなりスッキリできそうです。

ありがとうございました。

2008/05/21 09:56:30
  • id:pahoo
    > SESSIONの限界はないのでしょうか?
    技術上は「サーバの容量が許す限り」ですが、セキュリティ上、注意すべき点があります。
    過去質問 http://q.hatena.ne.jp/1143083535 を参考にしてください。
  • id:worldtravel
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません