セッション|コンセプト
セッションとは何ですか?
セッションは中国語に直接翻訳するのが難しく、一般的には時間領域に翻訳されます。コンピュータ用語では、セッションとはエンド ユーザーが対話型システムと通信する間の時間間隔を指し、通常はシステムに入る登録からシステムからログアウトするまでの経過時間を指します。
具体的には、Webにおけるセッションとは、ユーザーがWebサイトを閲覧する際に、Webサイトに入ってからブラウザを閉じるまでにかかる時間のことであり、ユーザーがWebサイトを閲覧する時間でもあります。したがって、上記の定義から、セッションは実際には特定の時間の概念であることがわかります。
セッションの概念には、特定のクライアント、特定のサーバー、および中断のない操作時間が含まれる必要があることに注意してください。ユーザー A がサーバー C との接続を確立するセッションと、ユーザー B がサーバー C との接続を確立するセッションは、2 つの異なるセッションです。
それでは、セッションの解決策は何でしょうか?ユーザーが Web サイトにアクセスする際には、多くの Web ページを閲覧する必要があることがよく知られています。 PHP で構築された Web サイトの場合、ユーザーは訪問中に多くの PHP スクリプトを実行する必要があります。ただし、HTTP プロトコル自体の特性により、ユーザーは PHP スクリプトを実行するたびに Web サーバーとの接続を再確立する必要があります。
そしてステートレスメモリの特性により、この接続は最後の接続のステータスを取得できません。このように、ユーザーは 1 つの PHP スクリプトで変数に値を割り当てますが、別の PHP スクリプトでその変数の値を取得することはできません。たとえば、ユーザーはログインを担当する PHP スクリプトで $user="wind" を設定しますが、別の PHP スクリプトで $user を呼び出しても "wind" の値を取得できません。つまり、PHP ではグローバル変数を設定できません。各 PHP スクリプトで定義される変数は、このスクリプト内でのみ有効なローカル変数です。
セッションの解決策は、PHP スクリプトでグローバル変数を定義するメソッドを提供し、このグローバル変数が同じセッション内のすべての PHP スクリプトで有効になるようにすることです。上で述べたように、セッションは単純な時間の概念ではありません。セッションには特定のユーザーとサーバーも含まれます。したがって、より詳細には、セッションで定義されるグローバル変数のスコープは、このセッションに対応するユーザーがアクセスするすべての PHP を指します。
たとえば、ユーザー A はセッションを通じてグローバル変数 $user="wind" を定義し、ユーザー B はセッションを通じてグローバル変数 $user="jane" を定義します。次に、ユーザー A がアクセスする PHP スクリプトでは、$user の値は Wind です。