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