CodeIgniter - Sitzungsverwaltung
Beim Erstellen von Websites müssen wir häufig die Aktivität und den Status des Benutzers verfolgen und zu diesem Zweck verwenden session. CodeIgniter verfügt zu diesem Zweck über eine Sitzungsklasse.
Sitzung initialisieren
Sitzungsdaten sind global über die Site verfügbar. Um diese Daten zu verwenden, müssen Sie jedoch zuerst die Sitzung initialisieren. Wir können dies tun, indem wir die folgende Zeile im Konstruktor ausführen.
$this->load->library('session');
Nach dem Laden der Sitzungsbibliothek können Sie das Sitzungsobjekt einfach wie unten gezeigt verwenden.
$this->session
Sitzungsdaten hinzufügen
In PHP verwenden wir einfach $_SESSION Array, um alle Daten in der Sitzung wie unten gezeigt festzulegen.
$_SESSION[‘key’] = value;
Wo 'key'ist der Schlüssel von Array und value wird auf der rechten Seite des Gleichheitszeichens zugewiesen.
Das Gleiche kann in CodeIgniter wie unten gezeigt gemacht werden.
$this->session->set_userdata('some_name', 'some_value');
set_userdata()Funktion akzeptiert zwei Argumente. Das erste Argument,some_nameist der Name der Sitzungsvariablen, unter der some_value wird gespeichert.
set_userdata() Die Funktion unterstützt auch eine andere Syntax, in der Sie ein Array übergeben können, um Werte wie unten gezeigt zu speichern.
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
Sitzungsdaten entfernen
In PHP können wir in der Sitzung gespeicherte Daten mit dem entfernen unset() Funktion wie unten gezeigt.
unset($_SESSION[‘some_name’]);
Das Entfernen von Sitzungsdaten in CodeIgniter ist wie unten gezeigt sehr einfach. Die folgende Version vonunset_userdata() Die Funktion entfernt nur eine Variable aus der Sitzung.
$this->session->unset_userdata('some_name');
Wenn Sie weitere Werte aus der Sitzung entfernen oder ein gesamtes Array entfernen möchten, können Sie die folgende Version von verwenden unset_userdata() Funktion.
$this->session->unset_userdata($array_items);
Sitzungsdaten abrufen
Nachdem Sie die Daten in der Sitzung festgelegt haben, können Sie diese Daten auch wie unten gezeigt abrufen. Userdata()Zu diesem Zweck wird die Funktion verwendet. Diese Funktion wird zurückgegebenNULL Wenn die Daten, auf die Sie zugreifen möchten, nicht verfügbar sind.
$name = $this->session->userdata('name');
Beispiel
Erstellen Sie eine Controller-Klasse mit dem Namen Session_controller.php und speichern Sie es in 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');
}
}
?>
Erstellen Sie eine Ansichtsdatei mit dem Namen session_view.php und speichern Sie es in 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>
Nehmen Sie die Änderungen in der routes.php Datei in application/config/routes.php und fügen Sie die folgende Zeile am Ende der Datei hinzu.
$route['sessionex'] = 'Session_Controller';
Führen Sie das obige Beispiel mit der folgenden Adresse aus. Ersetzenyoursite.com mit der URL Ihrer Website.
http://yoursite.com/index.php/sessionex