セッションファイルに保存されたデータは、PHP スクリプト内の変数の形式で作成され、ライフサイクル中 (20 分) にクロスページリクエストで参照できます。また、セッションはサーバー側に保存されるセッションであり、比較的安全であり、Cookie のような保存長の制限がありません。
セッションの仕組み
セッションが開始されると、セッションのファイル名であるランダムな session_id が生成され、この時点で、ページが閉じられると、session_id がサーバーのメモリに保存されます。 ID は自動的にログアウトされ、このページに再度ログインすると、ランダムな session_id が再生成されます。
セッションの機能
セッションはWeb技術において非常に重要です。Webページはステートレスな接続プログラムであるため、ユーザーの閲覧状況を知ることができません。セッションを通じて、ユーザーがこの立場で Web サーバーにリクエストを再度送信するときに、確認のためにユーザーの関連情報を記録できます。たとえば、ユーザーが電子商取引 Web サイトを閲覧するときにセッションを持っていない場合、ユーザーは閲覧するたびにアカウントのパスワードを入力する必要があります。
さらに、セッションは保存される情報量が少ない状況に適しています。ユーザーが少量の情報を保存する必要があり、保存されたコンテンツを長期間保存する必要がない場合は、セッションを使用してサーバー側に情報を保存する方が適切です。
セッションの作成
セッションを作成する手順は次のとおりです:
セッションの開始 → セッションの登録 → セッションの使用 → セッションの削除
1, セッションの開始
セッションを開始するには 2 つの方法があります。 session_start() 関数を使用する方法と、session_register() 関数を使用してセッションの変数を登録し、暗黙的にセッションを開始する方法です。
session_start() 関数を使用してセッションを作成します。構文形式は次のとおりです:
bool session_start(void);
session_register() 関数を使用してセッションを作成します
session_register() 関数は、 session を使用して暗黙的にセッションを開始しますが、php.ini ファイルの設定に必要なオプションでは register_globals ディレクティブを on に指定し、Apache サービスを再起動します。
注意
session_register() 関数を使用する場合、session_start() 関数を呼び出す必要はありませんが、変数が登録された後、PHP は暗黙的に session_start() 関数を呼び出します。
2、セッションを登録します
セッション変数が開始されると、それらはすべて配列 SESSION に保存されます。 _SESSION 配列を使用してセッション変数を簡単に作成できます。要素を配列に直接追加するだけです。
具体的なコード例は次のとおりです:
<?php session_start(); //启动一个session $_SESSION["admin"] =null; //声明一个名为admin的变量并赋空值 ?>
3、セッションを使用します
まず、セッション変数 ID が存在するかどうかを確認する必要があります。存在しない場合は、セッション変数 ID を作成し、グローバル配列 $_SESSION を通じてアクセスできるようにします。 。すでに存在する場合、登録されたセッション変数はユーザーが使用できるようにロードされます。
例: ユーザー名のセッションが空かどうかを確認します。空でない場合は、このセッション変数を $jackValue に割り当てます。
コード例は次のとおりです:
<?php if(!empty($_SESSION['session_name'])) //判断存储用户会话变量是否为空 { $jackValue =$_SESSION['session_name'];//将会话变量赋给一个变量$jackValue } ?>
4, delete session
(1) 単一のセッションを削除します
セッション変数を削除します。配列の操作と同じように、$_SESSION 配列の要素を直接ログアウトするだけです。
詳細は以下の通りです:
unset($_SESSION['session_name']);
(2) 複数のセッションを削除します
すべてのセッション変数を一度にログアウトしたい場合は、空の配列を $ に代入できます。 _セッション。
コードは次のとおりです:
SESSION= array();
(3) 現在のセッションを終了します
セッション全体が終了した場合は、まずすべてのセッション変数をログアウトし、次に session_destroy() 関数を使用してクリアする必要があります現在のセッションを削除し、セッションすべてのリソースを空にし、セッションを完全に破棄します。
コードは次のとおりです:
session_destroy();
5、セッションの有効期限を設定します
1. クライアントは Cookie を禁止しません
(1) session_set_cookie_params() を使用してセッションの有効期限を設定します。 Cookie 設定と組み合わせてセッションを無効にするために使用されます。セッションを 1 分後に期限切れにしたい場合、コード例は次のとおりです:
session_set_cookie_params() は session_start() の前に使用する必要があります (2) setcookie() 関数を使用してセッションの有効期限を設定します
例 コードは次のとおりです:
<?php $time =1*60; //设置session的失效时间 session_set_cookie_params($time); //是用函数 session_start(); $_SESSION["userName"]="jack"; ?>
ここで、 session_name はセッションの名前、 session_id はセッションがクライアントを識別するために使用する識別子、 session_id は次のとおりです。はランダムに生成された一意の名前であるため、セッションは比較的安全です。有効期限は Cookie の有効期限と同じです。最後のパラメータはオプションで、Cookie のパスを指定するために使用されます。