5.7 Sessions
Die CakePHP Session-Komponente ermöglicht es Benutzerdaten zwischen verschiedenen Seitenanbesuchen zwischen zu speichern. Sie handelt als Wrapper für die $_SESSION von PHP und bietet verschiedene Methoden für Funktionen in Bezug auf $_SESSION.
Sitzungen können auf einigen Wegen dauerhaft gespeichert werden. Der Standard ist es, dass die Einstellungen von PHP verwendet werden; wie auch immer, es gibt auch andere Möglichkeiten.
- cake
- Speichert die Sitzungsdateien im Ordner app/tmp/sessions.
- cake
- Die Session-Dateien werden im Ordner app/tmp/sessions gespeichert.
- database
- Die Sitzungen werden in CakePHP's Datenbank gespeichert.
- cache
- Nutzt die mit Cache::config() konfigurierte Caching-Engine. Sehr hilfreich im Zusammenhang mit Memcache (bei Setups mit mehreren Applikations-Servern), um sowohl gecachte, als auch Sitzungsdaten zu speichern.
- php
- Die Standardeinstellung. Speichert Sitzungsdaten, wie in der php.ini angegeben.
// app/config/core.phpConfigure::write('Session.save','my_session');// app/config/my_session.php//// Revert value and get rid of the referrer check even when,// Security.level is mediumini_restore('session.referer_check');ini_set('session.use_trans_sid', 0);ini_set('session.name', Configure::read('Session.cookie'));// Cookie is now destroyed when browser is closed, doesn't// persist for days as it does by default for security// low and mediumini_set('session.cookie_lifetime', 0);// Cookie path is now '/' even if you app is within a sub// directory on the domain$this->path = '/';ini_set('session.cookie_path', $this->path);// Session cookie now persists across all subdomainsini_set('session.cookie_domain', env('HTTP_BASE'));
Sitzungen/Sessions können auf einige Arten dauerhaft sein. Im Normalfall werden in CakePHP die Standeinstellungen von PHP benutzt; Wie dem auch sei, es bestehen auch weiter, andere Optionen.
Um die Standardeinstellung zu ändern, muss die Session.save-Konfiguration in die gewünschte Option geändert werden. Wenn Sie 'database' wählen, dann sollten Sie ebenfalls die Session.database-Einstellung auskommentieren und die SQL-Session-Datenbank-Datei, welche sich im Ordner app/config befindet in Ihrer Datenbank ausführen.
Um eine selbst definierte Konfiguration zu verwenden, können Sie die Session.save-Einstellung auf einen Dateinamen setzen. CakePHP wird dann diese Datei aus Ihrem CONFIGS-Verzeichnis für diese Einstellung benutzen.
// app/config/core.php
Configure::write('Session.save','my_session');
Dies erlaubt Ihnen das Session-Handling zu verändern.
// app/config/my_session.php
//
// Revert value and get rid of the referrer check even when,
// Security.level is medium
ini_restore('session.referer_check');
ini_set('session.use_trans_sid', 0);
ini_set('session.name', Configure::read('Session.cookie'));
// Cookie is now destroyed when browser is closed, doesn't
// persist for days as it does by default for security
// low and medium
ini_set('session.cookie_lifetime', 0);
// Cookie path is now '/' even if you app is within a sub
// directory on the domain
$this->path = '/';
ini_set('session.cookie_path', $this->path);
// Session cookie now persists across all subdomains
ini_set('session.cookie_domain', env('HTTP_BASE'));


























