セッションがどのように機能するかを見てみましょう。本人認証がCookieによって行われていることをご存知でしょうか。まず、ユーザー ID の標識として一意の Cookie が生成され、データベースに登録されます。ユーザーによって渡された Cookie は、データベースに登録されている Cookie と比較され、ユーザーの身元が特定されます。
セッションも同様に機能します。
まず、PHP は、ユーザーのセッションを識別するために、セッションを作成したユーザーの一意の文字列を生成します。この文字列は通常、セッション ID と呼ばれます。次に、「sess」 + セッション ID がファイル名になります (たとえば、セッション ID が 111 の場合、ファイル名は sess_111 になります)。サーバーのファイル システムにファイルを作成し、その変数名と値を保存します。ファイル内のセッションでユーザーによって定義されたグローバル変数。次に、セッション ID が PHPSession という名前の Cookie としてユーザーのファイル システムに保存されます。
その後、ユーザーが再度サーバーに接続して PHP スクリプトにアクセスすると、PHP はユーザーが送信した PEESession Cookie からユーザーのセッションのセッション ID を取得し、セッションに基づいてサーバーのファイル システムからセッション情報ファイルを保存します。同上。最後に、最後の接続中にユーザーが設定したグローバル変数の値がこのファイルから読み取られます。
したがって、Session の動作原理は、前のセクションで紹介した ID 認証の動作原理と同じであることがわかります。唯一の違いは、セッションは情報をサーバーのファイル システムに保存するのに対し、私たちは情報をデータベースに保存することです。もちろんSessionを使うメリットはデータの保存や取得がPHPによって自動的に完了することですが、Cookieを直接使う場合は自分でデータの保存や取得を行う必要があります。
セッションはCookieの識別マーク機能を利用し、ユーザーがウェブサイトを閲覧する際に保存が必要な情報をサーバー上に保存します。このように、Session は HTTP プロトコルの欠点を克服するだけでなく、情報漏洩も防止し、プログラマにとって非常に使いやすいソリューションです。ただし、Session 関数は PHP4 でのみサポートされており、PHP3 は Session をサポートしていません。したがって、PHP3 を使用して Web サイトを構築する読者は、Cookie を直接使用することしかできません。
以上、session.invalidate Sessionの動作方法を、session.invalidateの内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。