it-swarm.com.de

Wie kann ich eine Sitzung in der codeigniter 3-Datenbank einstellen?

Ich verwende die neue Version (3.0.0). von CodeIgniter und ich habe ein neues Problem, meine Sitzungen funktionieren nicht. Ich meine, der Code im Controller ist korrekt, weil es keine Fehler gibt, aber wenn ich versuche, eine PHP -Variable in einer Ansicht zu drucken, gibt es nichts.

Ich habe meine Tabelle im MySQL Server überprüft und nichts, ich weiß jetzt nicht, was das Problem ist. Ich gebe meinen Code von config.php ein. (Ich verstehe nicht viele Dinge in dieser neuen Version)

$config['sess_table_name']              = 'ci_sessions';
$config['sess_driver']              = 'database';
$config['sess_cookie_name']             = 'ci_session';
$config['sess_expiration']          = 7200;
$config['sess_save_path']               = NULL;
$config['sess_match_ip']                = FALSE;
$config['sess_time_to_update']      = 300;
$config['sess_regenerate_destroy']  = FALSE;

Ich muss die erste Zeile hinzufügen, um "Sitzungen" zum Laufen zu bringen. Ich weiß nicht, ob diese Konfiguration für Sitzungen in einer Datenbank korrekt ist.

Wenn jemand dasselbe Problem hat, helfen Sie mir bitte :(. Meine Session-Klasse wurde nicht bearbeitet.

Zunächst unterscheidet sich die Struktur der CI3-Sitzungstabelle und der CI2-Sitzungstabelle ( Speichern von Sitzungsdaten in einer Datenbank )

Neuer Sitzungstisch Struktur

 CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `id` varchar(40) NOT NULL,
    `ip_address` varchar(45) NOT NULL,
    `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
    `data` blob NOT NULL,
    PRIMARY KEY (id),
    KEY `ci_sessions_timestamp` (`timestamp`)
);

Zweitens Sie unterstützen alte Konfigurationsvariablen mit neue Konfiguration , aber es ist besser, eine neue Konfiguration zu verwenden

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';//its your table name name
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;

Weitere Details finden Sie in ihren docs

Nur wenige neue Funktionen (Funktionen) für die Sitzungsbibliothek verfügbar.

Remember Vergessen Sie nicht, es vor dem Gebrauch über autoload.php oder $this->load->library('session'); zu laden.

29
Shaiful Islam

Wenn Sie die erste Zeile (d. H. sess_table_name) hinzugefügt haben, damit es funktioniert, liegt dies daran, dass Ihr sess_driver-Wert auf database gesetzt ist. Werfen Sie einen Blick auf die Liste der unterstützten Treiber und Sie werden feststellen, dass dies bei dateibasierten Sitzungen der Fall ist. Mit anderen Worten, wenn Sie diese Zeilen entfernen, sollte es funktionieren:

$config['sess_table_name']          = 'ci_sessions';
$config['sess_driver']              = 'database';
0
Jeremy Harris

Entferne die hinzugefügte Zeile und setze:

$config['sess_save_path'] = 'ci_sessions';

Der restliche Code sollte in Ordnung sein . Link zu docs .

0
Tpojka