ホームページ  >  記事  >  バックエンド開発  >  【PHP】セッション保存方法の詳しい説明_PHPチュートリアル

【PHP】セッション保存方法の詳しい説明_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:09:31907ブラウズ

まず、セッションが自動的に開かれるか、または session_start() を使用して手動で開く必要があるかを確認します。

; リクエストの開始時にセッションモジュールが自動的にセッションを開始するかどうかを指定します。デフォルトは 0 (開始しない) です
; リクエストの起動時にセッションを初期化します。
; http://php.net/session.auto-start
session.auto_start = 0
クライアントストレージ
クライアント側では、セッションを Cookie に保存したり、URL パラメーターを介して取得したりできます。サーバー構成に応じて異なります:
; クライアント側でセッション ID を保存するために Cookie を使用するかどうかを指定します。デフォルトは 1 (有効) です
; Cookie を使用するかどうか。
; http://php.net/session.use-cookies
session.use_cookies = 1
; クライアント側でセッション ID を保存するために Cookie のみを使用するかどうかを指定します。 。この設定を有効にすると、URL を介して渡されるセッション ID に関係する攻撃が防止されます。
; このオプションは、PHP に保存と維持のために Cookie を強制的に取得して使用させます
; セッション ID は対策に非常に役立つため、この操作をお勧めします。
; 自分のセッションIDを指定して管理しない場合のセッションハイジャックです。
; セッションハイジャック防御はこれで終わりではありませんが、良いスタートです。
; http://php.net/session.use-only-cookies
session.use_only_cookies = 1
Cookie に保存されていることを確認したら、Cookie_name、cookie_lifetime、cookie_path、cookie_domain、cookie_secure、cookie_httponly など、Cookie に保存されているセッションの構成をさらに構成できます
; セッションの名前 (Cookie 名として使用)。
; http://php.net/セッション名
セッション名 = PHPSESSID
; Cookie の存続期間 (秒単位)。0 の場合はブラウザが再起動されるまで。
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0
; Cookie が有効なパス。
; http://php.net/session.cookie パス
session.cookie_path = /
; Cookie が有効なドメイン。
; http://php.net/session.cookie ドメイン
session.cookie_domain=
; httpOnly フラグを Cookie に追加するかどうか。これにより、JavaScript などのブラウザー スクリプト言語にアクセスできなくなります。
; http://php.net/session.cookie-httponly
session.cookie_httponly=
サーバー側ストレージ
サーバー側でも、セッションはさまざまな方法で保存できます。デフォルトのセッションはファイルに保存され、session.save_path はストレージ ファイルを作成するパスです。
; データの保存/取得に使用されるハンドラー。
; http://php.net/session.save-handler
session.save_handler = ファイル
; save_handler に渡される引数。ファイルの場合、これはパスです。
; データ ファイルが保存される場所: Windows ユーザーはこれを変更する必要があります
; PHPのセッション関数を使用するための変数。
;
; パスは次のように定義できます。
;
; session.save_path = "N;/パス"
;
; ここで、N は整数です。
にすべてのセッション ファイルを保存します。
; /path、これは N レベルの深さのサブディレクトリを使用します、そして
; これらのディレクトリにセッション データを保存すると、次のような場合に便利です。
; または、1 つのディレクトリに多数のファイルがあると OS に問題が発生します。
; 多くのセッションを処理するサーバーのより効率的なレイアウト。
;
; 注 1: PHP はこのディレクトリ構造を自動的に作成しません。
; その目的のために、ext/session ディレクトリ内のスクリプトを使用できます。
; 注 2: 必要に応じて、以下のガベージ コレクションに関するセクションを参照してください
; セッションの保存にはサブディレクトリを使用します
;
; ファイル ストレージ モジュールは、デフォルトでモード 600 を使用してファイルを作成します。
; を使用して変更できます。
;
; session.save_path = "N;MODE;/パス"
;
; ここで、MODE はモードの 8 進表現であることに注意してください。
; プロセスの umask は上書きされません。
; http://php.net/session.save-path
;session.save_path = "/tmp"
PHP は、セッション プロセッサのカスタマイズされたオープン、クローズ、読み取り、書き込み、破棄、GC 処理関数を実装するための session_set_save_handler をサポートしています。一般的なセッション プロセッサには、メモリ割り当て (mm、memcache など) が含まれており、データベース ストレージも使用できます。セッション ストレージがファイル システムと連携する必要がある場合 (データベース PostgreSQL セッション保存ハンドラーやデフォルトのファイル ストレージ ファイルを使用する場合など)、ユーザーがカスタマイズしたセッション プロセッサが、必要なセッションを失う可能性があることがわかります。データを保存しません。メモリ割り当てストレージを使用する場合は、セッション永続ストレージの問題を考慮する必要があります。
次に、memcache(d?) セッションプロセッサに焦点を当てます。
Memcache モジュールは、memcached に便利なプロセス指向およびオブジェクト指向のインターフェイスを提供します。Memcached は、動的 Web アプリケーションによるデータベースからのデータの読み込みを軽減するために作成された常駐プロセス キャッシュ製品です。
Memcache モジュールはセッション プロセッサ (memcache) も提供します。
memcached の詳細については、» http://www.memcached.org/ をご覧ください。
memcached は、高性能の分散メモリ オブジェクト キャッシング システムであり、通常、データベースの読み込み圧力を軽減し、動的 ​​Web アプリケーションの応答速度を向上させるために使用されます。
この拡張機能は、libmemcached ライブラリによって提供される API を使用して、memcached サーバーと対話します。また、セッション ハンドラー (memcached) も提供します。 セッション プロセッサ (memcached) も提供します。
libmemcached の詳細については、» http://libmemcached.org/libMemcached.html をご覧ください。
memcache セッションプロセッサ構成:
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211?persistent=0&weight=1&timeout=1&retry_interval=15,tcp://127.0.0.1:11212?persistent=0&weight=1&timeout=1&retry_interval=15,tcp:// 127.0.0.1:11213?persistent=0&weight=1&timeout=1&retry_interval=15,tcp://127.0.0.1:11214?persistent=0&weight=1&timeout=1&retry_interval=15"

http://www.bkjia.com/PHPjc/477646.html

tru​​ehttp://www.bkjia.com/PHPjc/477646.html技術記事まず、セッションが自動的に開かれるか、または session_start() によって手動で開く必要があるかを確認します。 ; リクエストの開始時にセッション モジュールが自動的にセッションを開始するかどうかを指定します。デフォルトは 0 (開始しない) です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。