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

PHPのセッション保存方法を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:17:55949ブラウズ

まず、セッションが自動的に開かれるか、または 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/session.name

セッション.名 = PHPSESSID

; Cookie の存続期間 (秒単位)。0 の場合はブラウザが再起動されるまで。

; http://php.net/session.cookie-lifetime

session.cookie_lifetime = 0

; Cookieが有効なパス。

; http://php.net/session.cookie-path

session.cookie_path = /

; Cookieが有効なドメイン。

; http://php.net/session.cookie-domain

session.cookie_domain =

; Cookie に httpOnly フラグを追加するかどうか。これにより、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 は、セッション プロセッサのカスタマイズされた open、close、read、write、destroy、および 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"

データベースプロセッサは、Session PgSQLを使用して実装できます(この拡張機能はメンテナンスされていないと見なされます)。他のデータベースを使用してセッション ストレージを実装することもできますが、ハンドラー関数 function.session-set-save-handler.php をカスタマイズする必要があります。特定のカスタム プロセッサについては、ジャンキーズ ドット jp のマリアを参照してください。

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