PHP セッションについて: セッションと Cookie
HTTP (ハイパーテキスト転送プロトコル) は、テキスト、グラフィックス、ビデオなどの世界中への送信を定義します。 Web (WWW) データ ルール。 HTTP はステートレス プロトコルであり、各リクエストの処理は前後のリクエストとは無関係です。
セッション処理は、このステートレス問題の解決策です。これは、各 Web サイト訪問者にセッション ID (SID) と呼ばれる一意の識別属性を割り当て、この SID を任意の量のデータに関連付けることによって行われます。
PHP セッションが開始されると、各訪問者に SID が割り当てられます。この SID はクライアントの Cookie にも書き込まれます。デフォルトの Cookie 変数名は PHPSESSID
です。ここで「同時性」と言うのは正確ではありません。次のページのコードはページを更新した後にのみ Cookie を取得できるからです:
<code class=" hljs scss"><span class="hljs-function">session_start()</span>;<span class="hljs-function">echo(<span class="hljs-string">'SID:'</span>.<span class="hljs-function">session_id()</span>.<span class="hljs-string">'<hr/>'</span>)</span>;<span class="hljs-function">echo(<span class="hljs-string">'Cookie_sid:'</span>.$_COOKIE[<span class="hljs-string">'PHPSESSID'</span>].<span class="hljs-string">'<hr/>'</span>)</span>;</code>
何の準備もせずにクライアントで Cookie を無効にすると、実際にセッションが無効になります。この本 (PHP および MySQL プログラミング、第 3 版) では、クライアントが SID を保存するには 2 つの方法があると述べています。1 つは cookie で、もう 1 つは URL を書き換えて渡す方法です。 php.ini ファイル内の session.use_trans_sid
の値を変更して URL の自動書き換えを実現できますが、私はそれをテストしていません。
デフォルトでは、セッションはサーバーにファイルとして保存されます。関連する設定は php.ini ファイルで行うことができます:
<code class=" hljs avrasm">session<span class="hljs-preprocessor">.save</span>_handler=files session<span class="hljs-preprocessor">.save</span>_path = <span class="hljs-string">"N;MODE;/path"</span></code>
save_handler の値は 4 つあります:
files
フラット ファイル mm
メモリの共有 sqlite
SQLite データベース user
ユーザー定義関数 ユーザー モードを使用すると、カスタム関数を使用してセッションと連携できます。これは機能しているようです非常に強力です。しかし、それを実践する時間がありません。時間ができたらまた勉強します。
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。