Heim > Backend-Entwicklung > PHP-Tutorial > CakePHP-Sitzungsverwaltung

CakePHP-Sitzungsverwaltung

WBOY
Freigeben: 2024-09-10 17:26:38
Original
844 Leute haben es durchsucht

Sitzung ermöglicht uns die Verwaltung einzelner Benutzer über Anfragen hinweg und speichert Daten für bestimmte Benutzer. Auf Sitzungsdaten kann überall zugegriffen werden, wo Sie Zugriff auf das Anforderungsobjekt haben, d. h. Sitzungen sind von Controllern, Ansichten, Helfern, Zellen und Komponenten aus zugänglich.

Auf Sitzungsobjekt zugreifen

Sitzungsobjekte können durch Ausführen des folgenden Codes erstellt werden.

$session = $this->request->session();
Nach dem Login kopieren

Sitzungsdaten schreiben

Um etwas in einer Sitzung zu schreiben, können wir die Methode write() session verwenden.

Session::write($key, $value)
Nach dem Login kopieren

Die obige Methode benötigt zwei Argumente, den Wert und den Schlüssel, unter dem der Wert gespeichert wird.

Beispiel

$session->write('name', 'Virat Gandhi');
Nach dem Login kopieren

Sitzungsdaten lesen

Um gespeicherte Daten aus der Sitzung abzurufen, können wir die Methode read() session verwenden.

Session::read($key)
Nach dem Login kopieren

Die obige Funktion benötigt nur ein Argument, nämlich den Schlüssel des Werts, der zum Zeitpunkt des Schreibens der Sitzungsdaten verwendet wurde. Sobald der richtige Schlüssel angegeben wurde, gibt die Funktion ihren Wert zurück.

Beispiel

$session->read('name');
Nach dem Login kopieren

Wenn Sie überprüfen möchten, ob bestimmte Daten in der Sitzung vorhanden sind oder nicht, können Sie die Methode check() session verwenden.

Session::check($key)
Nach dem Login kopieren

Die obige Funktion verwendet nur den Schlüssel als Argument.

Beispiel

if ($session->check('name')) {
   // name exists and is not null.
}
Nach dem Login kopieren

Sitzungsdaten löschen

Um Daten aus der Sitzung zu löschen, können wir die Methode delete() session verwenden, um die Daten zu löschen.

Session::delete($key)
Nach dem Login kopieren

Die obige Funktion übernimmt nur den Schlüssel des Werts, der aus der Sitzung gelöscht werden soll.

Beispiel

$session->delete('name');
Nach dem Login kopieren

Wenn Sie Daten aus der Sitzung lesen und dann löschen möchten, können wir die Methode consume() session verwenden.

static Session::consume($key)
Nach dem Login kopieren

Die obige Funktion verwendet nur den Schlüssel als Argument.

Beispiel

$session->consume('name');
Nach dem Login kopieren

Eine Sitzung zerstören

Wir müssen eine Benutzersitzung zerstören. Wenn sich der Benutzer von der Site abmeldet, wird zum Zerstören der Sitzung die Methode destroy() verwendet.

Session::destroy()
Nach dem Login kopieren

Beispiel

$session->destroy();
Nach dem Login kopieren

Durch das Zerstören der Sitzung werden alle Sitzungsdaten vom Server entfernt, das Sitzungscookie wird jedoch nicht entfernt.

Eine Sitzung verlängern

In einer Situation, in der Sie die Benutzersitzung dann erneuern möchten, können wir die Methode renew() session verwenden.

Session::renew()
Nach dem Login kopieren

Beispiel

$session->renew();
Nach dem Login kopieren

Sitzung abschließen

Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Programm gezeigt.

config/routes.php

<?php use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('/session-object',['controller'=>'Sessions','action'=>'index']);
   $builder->connect('/session-read',['controller'=>'Sessions','action'=>'retrieve_session_data']);
   $builder->connect('/session-write',['controller'=>'Sessions','action'=> 'write_session_data']);
   $builder->connect('/session-check',['controller'=>'Sessions','action'=>'check_session_data']);
   $builder->connect('/session-delete',['controller'=>'Sessions','action'=>'delete_session_data']);
   $builder->connect('/session-destroy',['controller'=>'Sessions','action'=>'destroy_session_data']);
   $builder->fallbacks();
});
Nach dem Login kopieren

Erstellen Sie eine Datei SessionsController.php unter src/Controller/SessionsController.php. Kopieren Sie den folgenden Code in die Controller-Datei

src/Controller/SessionsController.php

<?php namespace App\Controller;
use App\Controller\AppController;
   class SessionsController extends AppController {
   public function retrieveSessionData() {
      //create session object
      $session = $this->request->getSession();
      //read data from session
      $name = $session->read('name');
      $this->set('name',$name);
   }
   public function writeSessionData(){
      //create session object
      $session = $this->request->getSession();
      //write data in session
      $session->write('name','Virat Gandhi');
   }
   public function checkSessionData(){
      //create session object
      $session = $this->request->getSession();
      //check session data
      $name = $session->check('name');
      $address = $session->check('address');
      $this->set('name',$name);
      $this->set('address',$address);
   }
   public function deleteSessionData(){
      //create session object
      $session = $this->request->getSession();
      //delete session data
      $session->delete('name');
   }
   public function destroySessionData(){
      //create session object
      $session = $this->request->getSession();
      //destroy session
      $session->destroy();
   }
}
?>
Nach dem Login kopieren

Erstellen Sie ein Verzeichnis Sessions unter src/Template und erstellen Sie unter diesem Verzeichnis eine View-Datei mit dem CakePHP-Sitzungsverwaltungn write_session_data.php. Kopieren Sie die Folgender Code in dieser Datei.

src/Template/Sessions/write_session_data.php

The data has been written in session.
Nach dem Login kopieren

Erstellen Sie eine weitere View-Datei mit dem CakePHP-Sitzungsverwaltungn retrieve_session_data.php im selben Sessions-Verzeichnis und kopieren Sie den folgenden Code in diese Datei.

src/Template/Sessions/retrieve_session_data.php

Here is the data from session.
CakePHP-Sitzungsverwaltung: =$name;?>
Nach dem Login kopieren

Erstellen Sie eine weitere View-Datei mit dem CakePHP-Sitzungsverwaltungn check_session_data.ctp im selben Sitzungsverzeichnis und kopieren Sie den folgenden Code in diese Datei.

src/Template/Sessions/check_session_data.ctp

<?php if($name): ?>
name exists in the session.
<?php else: ?>
name doesn't exist in the database
<?php endif;?>
<?php if($address): ?>
address exists in the session.
<?php else: ?>
address doesn't exist in the database
<?php endif;?>
Nach dem Login kopieren

Erstellen Sie eine weitere View-Datei mit dem CakePHP-Sitzungsverwaltungn delete_session_data.ctp, im selben Sitzungsverzeichnis und kopieren Sie den folgenden Code in diese Datei.

src/Template/Sessions/delete_session_data.ctp

Data deleted from session.
Nach dem Login kopieren

Erstellen Sie eine weitere View-Datei mit dem CakePHP-Sitzungsverwaltungn destroy_session_data.ctp im selben Sitzungsverzeichnis und kopieren Sie den folgenden Code in diese Datei.

src/Template/Sessions/destroy_session_data.ctp

Session CakePHP-Sitzungsverwaltung.
Nach dem Login kopieren

Ausgabe

Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen. Diese URL hilft Ihnen beim Schreiben von Daten in der Sitzung.

http://localhost/cakephp4/session-write

Written in Session

Besuchen Sie die folgende URL um Sitzungsdaten zu lesen: http://localhost/cakephp4/session-read

CakePHP-Sitzungsverwaltung

Besuchen Sie die folgende URL um Sitzungsdaten zu überprüfen − http://localhost/cakephp4/session-check

CakePHP-Sitzungsverwaltung Exists

Besuchen Sie die folgende URL um Sitzungsdaten zu löschen − http://localhost/cakephp4/session-delete Besuchen Sie die

Delete From Session

Besuchen Sie die folgende URL um Sitzungsdaten zu zerstören − http://localhost/cakephp4/session-destroy

CakePHP-Sitzungsverwaltung

Das obige ist der detaillierte Inhalt vonCakePHP-Sitzungsverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage