CodeIgniter - Manajemen Sesi

Saat membangun situs web, kami sering kali perlu melacak aktivitas dan status pengguna dan untuk tujuan ini, kami harus menggunakannya session. CodeIgniter memiliki kelas sesi untuk tujuan ini.

Memulai Sesi

Data sesi tersedia secara global melalui situs, tetapi untuk menggunakan data tersebut kita perlu menginisialisasi sesi terlebih dahulu. Kita dapat melakukannya dengan menjalankan baris berikut dalam konstruktor.

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

Setelah memuat pustaka sesi, Anda cukup menggunakan objek sesi seperti yang ditunjukkan di bawah ini.

$this->session

Tambahkan Data Sesi

Di PHP, kami cukup menggunakan $_SESSION array untuk mengatur data apa pun dalam sesi seperti yang ditunjukkan di bawah ini.

$_SESSION[‘key’] = value;

Dimana 'key'adalah kunci dari array dan value ditempatkan di sisi kanan tanda sama dengan.

Hal yang sama dapat dilakukan di CodeIgniter seperti yang ditunjukkan di bawah ini.

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

set_userdata()fungsi membutuhkan dua argumen. Argumen pertama,some_name, adalah nama variabel sesi, di mana, some_value akan disimpan.

set_userdata() function juga mendukung sintaks lain di mana Anda dapat meneruskan array untuk menyimpan nilai seperti yang ditunjukkan di bawah ini.

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

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

Hapus Data Sesi

Di PHP, kita dapat menghapus data yang disimpan dalam sesi menggunakan unset() berfungsi seperti yang ditunjukkan di bawah ini.

unset($_SESSION[‘some_name’]);

Menghapus data sesi di CodeIgniter sangat sederhana seperti yang ditunjukkan di bawah ini. Versi di bawah ini dariunset_userdata() fungsi hanya akan menghapus satu variabel dari sesi.

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

Jika Anda ingin menghapus lebih banyak nilai dari sesi atau untuk menghapus seluruh larik Anda dapat menggunakan versi di bawah ini unset_userdata() fungsi.

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

Ambil Data Sesi

Setelah mengatur data dalam sesi, kami juga dapat mengambil data itu seperti yang ditunjukkan di bawah ini. Userdata()fungsi akan digunakan untuk tujuan ini. Fungsi ini akan kembaliNULL jika data yang Anda coba akses tidak tersedia.

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

Contoh

Buat kelas pengontrol bernama Session_controller.php dan simpan di 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'); 
      } 
		
   } 
?>

Buat file tampilan bernama session_view.php dan simpan di 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>

Lakukan perubahan di routes.php mengajukan application/config/routes.php dan tambahkan baris berikut di akhir file.

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

Jalankan contoh di atas dengan menggunakan alamat berikut. Menggantikanyoursite.com dengan URL situs Anda.

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