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