- ベストアンサー
セッションについて
セッション関数は、とても便利な機能ですが、 プログラミングする上で、意識なく多用しても問題ないのでしょうか? 質問の意図は、例えばログインしたユーザーの登録情報等の値を20個位セッションにセットするようなコーディングをしたとして、 同時に1000人位のユーザーがアクセスした場合、システムへの負荷は?(変数と同等に使用してもいいのでしょうか?) a.意識する必要なし b.なるべくセッション関数は使わないほうがいい c.その他 専門的な事はわからないので、簡単に教えて頂けると助かります。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
追加のご質問についての回答です。 私はセッションに格納する情報としては、複数のページで使うことが必須のものとキャッシュとしてのみ使用することにしています。 複数のページで使うもので一般的なものはログイン情報でしょうか。 少し特殊なところではエラーメッセージの格納にも使っています。これは使いどころが難しいのですが、ページのリダイレクト先でエラーメッセージを表示したい場合に使用します。 キャッシュとしてセッションを使う場合は気をつけることが色々あります。例えば、キャッシュ対象は何に対応しているかです。キャッシュ対象がクライアントに付随する場合(ログイン中のユーザ情報などがこれにあたります)は、セッションにキャッシュとして情報を格納するほうがいいですが、キャッシュ対象がシステムに付随する場合(利用者全員が同じ情報を使う場合)はセッションに格納すべきではありません。 後者の場合は共有メモリに格納したいところですが、PHPの場合は簡単に共有メモリを使うことができません。そんなときは私はPEARのCache_Liteパッケージを使っています。 以上ですが、これはあくまで私なりの回答です。私の仕事環境では周りにPHPのスペシャリストがいないので独学な部分が多々あったり、元々JavaプログラマなのでJava風だったりします。
その他の回答 (1)
- matchasoft
- ベストアンサー率54% (20/37)
PHPの場合は、設定にもよりますが一般的にはセッション情報はディスク上のファイルに保存されます。 試したわけではないですが、セッションとして保存する情報量が多くなると、ディスクへの書き出しと読み込みの時間が多くなるように思います。 小さい文字列を数十個保存する程度なら問題ないと思いますが。
お礼
回答ありがとうございます。 参考になりました。 >セッション情報はディスク上のファイルに保存されます。 知りませんでした。 きっとホストのメモリ上に保存されるんだろうなと思っていました・・・ ユーザー登録フォームとかで情報を入力し登録する時、 エラーチェックでNGになった内容をエラー用ページで表示し、ユーザー登録フォームを再表示させる場合、 サイトによって「入力値」を保持してくれているサイトと、消えてしまうサイトがあって、前者の様な登録フォームを作成する時にセッション関数を使いたいと思っています。 また、ユーザー認証や、データベースへの問い合わせ回数を減らす場合等 使いたい所がいっぱいあるのですが、参考書には使い方以上の説明がないので気になっていました。 プロの方は、セッション関数をどのような時に利用するのでしょうか? すみません・・ 頂いた回答に質問で返してしまって・・・ もしお手すきでしたら教えて下さい。
お礼
教えて頂いたセッションを使う条件を参考に、コーディングしてみます。 ありがとうございました。