ホームページ >バックエンド開発 >PHPチュートリアル >PHP フレームワーク codeigniter でフレームワークを使用する方法に関する session_PHP チュートリアルの解析
セッションを使用するには 2 つの方法があります:
1 は php の元のセッション メソッドです。これは非常に簡単です。 $_SESSION['name']="name" で、必要な場所に表示します。 echo $_SESSION [ 'name'];
2 は codeigniter フレームワークのメソッドです:
以下は、このやや複雑なメソッドの使用方法の詳細な説明です:
まず、ciapplicationconfig の下の config.php ファイルを見つけます: $config[ 'encryption_key'] = '';これには任意の値を入力できますが、空にすることはできません。通常は英語なので、気負いすぎないでください。
次に、ciapplicationconfig の下の auto.php ファイルを見つけます: $autoload['libraries'] = array(''); を入力します: $autoload['libraries'] = array('session'); または、適切な例を入力します。 、コントロール フォルダー内の対応するファイル (通常は構築メソッド内) に次のように記述します: $this->load->library('session'); これも機能します。
環境が設定されたので、次はコードを記述します:
セッションを配置する必要がある場所を記述します:
$this->session->set_userdata('name','yang');
Inこのようにして、セッション内で価値があります。 C 表示値: hecho $ this-& gt; session-& gt; userdata ('name');
$ newdata = Array (
'username' = & gt; 'johndoe',
' email ' => 'johndoe@some-site.com',
'logged_in' => 無意味な関連知識:
セッションは各ページが読み込まれた後に実行を開始するため、最初にセッション クラスを初期化する必要があります。
1. コントローラーで初期化することも、システムに自動的にロードすることもできます (翻訳者注: autoload.php で設定します) $autoload['libraries'] = array('session');
2. コントローラー コンストラクターでセッション クラスを初期化するには、$this->load->library 関数を使用します。 $this->load->library('session'); $this->session のように使用できます。
セッション クラスのほとんどはバックグラウンドで実行されるため、セッションが初期化されると、セッション データが自動的に読み取られ、作成され、更新されます。
セッションはどのように機能しますか?
知っておくべき非常に重要なことは、セッション クラスが初期化されると、自動的に実行されるということです。残りは完全に無視して構いません。以下でわかるように、セッションを通常どおりに操作したり、独自のセッション データを追加したりすることもできます。その過程で、読み取り、書き込み、更新の操作が自動的に完了します。
デフォルトでは、セッション Cookie は 5 分ごとにのみ更新されるため、プロセッサの負荷が軽減されます。ページを繰り返しロードすると、「最後のアクティビティ」時間は 5 分以上経過するまで変わらないことがわかります。これは、Cookie が最後に書き込まれた時間です。 この時間は、application/config/config.php ファイルの $config['sess_time_to_update'] 行を設定することで変更できます。
セッションは、次の情報を含む配列で構成されます:
一意のユーザー セッション ID (これは、MD5 暗号化を使用して、平均情報量から計算された非常に強力なランダムな文字列であり、デフォルトでは 5 分ごとに更新されます)
ユーザーの IP アドレス
最新のアクティブなタイムスタンプ
上記のデータはシリアル化され、次の配列形式で Cookie に保存されます:
コードをコピーします。
コードは次のとおりです:
2. カスタマイズされたセッション データを追加する:
特定のユーザーが Web サイトにログインすると、そのユーザー名と電子メールをセッション Cookie に追加せずに削除できます。データベースにアクセスするときは、グローバル変数として使用します。
次の関数を使用して、新しいユーザー配列をセッション配列に渡すことができます:
$this->session->set_userdata($array);
$array は、新しいデータを保存するために使用される結合配列です。例:
3. セッション データの削除: set_userdata() を使用してセッションに情報を追加するのと同じように、セッション キーを unset_userdata() 関数に渡すことでこの情報を削除できます。たとえば、セッション情報から 'some_name' を削除したい場合:$this->session->unset_userdata('some_name');
削除する項目の連想配列をこの関数に渡すこともできます。
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);
4. セッション データをデータベースに保存する:
データベースでセッション データが利用可能な場合、ユーザー Cookie から有効なセッションが見つかるたびに、それに一致するデータベース クエリが実行されます。セッション ID が一致しない場合、セッションは破棄されます。セッション ID は更新されることはなく、新しいセッションが作成されたときにのみ生成されます。 セッションを保存するには、まずデータテーブルを作成する必要があります。これは、セッション クラス (MySQL の場合) に必要な基本構造です:
5. セッションを破棄します
現在のセッションをクリアするには: $this->session->sess_destroy();
セッションパラメータ
6. application/config/config.php ファイルには、次のセッション関連パラメータがあります:
パラメータ デフォルト オプション 説明
sess_cookie_name ci_session なし セッション Cookie を保存する名前。
sess_expiration 7200 なし セッションが持続する秒数。デフォルトは 2 時間 (7200 秒) です。この値を 0 に設定すると、永続的なセッションを取得できます。
sess_expire_on_close FALSE TRUE/FALSE (ブール値) このオプションは、ブラウザ ウィンドウが閉じられたときにセッションを自動的に期限切れにするかどうかを決定します。
sess_encrypt_cookie FALSE TRUE/FALSE (Boolean boolean) セッション データを暗号化するかどうか。
sess_use_database FALSE TRUE/FALSE (Boolean boolean) セッション データをデータベースに保存するかどうか。このオプションをオンにする前に、まずデータベース テーブルを作成する必要があります。
sess_table_name ci_sessions 任意の有効な SQL テーブル名 セッション データベース テーブルの名前。
sess_time_to_update 300 秒単位の時間 このオプションは、セッション クラスが新しいセッションとセッション ID を生成する頻度を制御します。
sess_match_ip FALSE TRUE/FALSE (ブール値) ユーザーの IP アドレスを通じてセッション データを読み取るかどうか。 一部のネットワーク オペレータや ISP は IP を動的に変更するため、このオプションを FALSE に設定すると永続的なセッションを取得できることに注意してください。
sess_match_useragent TRUE TRUE/FALSE (ブール値) 対応するユーザー エージェントに従ってセッション データを読み取るかどうか。