CodeIgniter-セッション管理

ウェブサイトを構築するとき、私たちはしばしばユーザーの活動と状態を追跡する必要があり、この目的のために、私たちは使用しなければなりません session。CodeIgniterには、この目的のためのセッションクラスがあります。

セッションの初期化

セッションデータはサイトを通じてグローバルに利用できますが、これらのデータを使用するには、最初にセッションを初期化する必要があります。これを行うには、コンストラクターで次の行を実行します。

$this->load->library('session');

セッションライブラリをロードした後、以下に示すようにセッションオブジェクトを使用するだけです。

$this->session

セッションデータの追加

PHPでは、単に使用します $_SESSION 以下に示すように、セッション内のデータを設定する配列。

$_SESSION[‘key’] = value;

どこ 'key'は配列のキーであり、 value 等号の右側に割り当てられます。

以下に示すように、CodeIgniterでも同じことができます。

$this->session->set_userdata('some_name', 'some_value');

set_userdata()関数は2つの引数を取ります。最初の議論、some_name、はセッション変数の名前であり、その下に、 some_value 保存されます。

set_userdata() 関数は、以下に示すように、配列を渡して値を格納できる別の構文もサポートしています。

$newdata = array( 
   'username'  => 'johndoe', 
   'email'     => '[email protected]', 
   'logged_in' => TRUE
);  

$this->session->set_userdata($newdata);

セッションデータを削除する

PHPでは、セッションに保存されているデータを、 unset() 以下のように機能します。

unset($_SESSION[‘some_name’]);

CodeIgniterでのセッションデータの削除は、以下に示すように非常に簡単です。以下のバージョンのunset_userdata() 関数は、セッションから1つの変数のみを削除します。

$this->session->unset_userdata('some_name');

セッションからさらに値を削除する場合、または配列全体を削除する場合は、以下のバージョンを使用できます。 unset_userdata() 関数。

$this->session->unset_userdata($array_items);

セッションデータの取得

セッションでデータを設定した後、以下に示すようにそのデータを取得することもできます。 Userdata()関数はこの目的で使用されます。この関数はNULL アクセスしようとしているデータが利用できない場合。

$name = $this->session->userdata('name');

と呼ばれるコントローラークラスを作成します Session_controller.php に保存します application/controller/Session_controller.php

<?php 
   class Session_controller extends CI_Controller {
	
      public function index() { 
         //loading session library 
         $this->load->library('session');
			
         //adding data to session 
         $this->session->set_userdata('name','virat');
			
         $this->load->view('session_view'); 
      } 
		
      public function unset_session_data() { 
         //loading session library
         $this->load->library('session');
			
         //removing session data 
         $this->session->unset_userdata('name'); 
         $this->load->view('session_view'); 
      } 
		
   } 
?>

と呼ばれるビューファイルを作成します session_view.php に保存します application/views/session_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Session Example</title> 
   </head>
	
   <body> 
      Welcome <?php echo $this->session->userdata('name'); ?> 
      <br> 
      <a href = 'http://localhost:85/CodeIgniter-3.0.1/CodeIgniter3.0.1/index.php/sessionex/unset'>
         Click Here</a> to unset session data. 
   </body>
	
</html>

に変更を加えます routes.php ファイルに application/config/routes.php ファイルの最後に次の行を追加します。

$route['sessionex'] = 'Session_Controller';

次のアドレスを使用して、上記の例を実行します。交換yoursite.com あなたのサイトのURLで。

http://yoursite.com/index.php/sessionex