wenn ich Sitzungsdaten in Codeigniter 3 festlegen möchte, wird ein Fehler wie
A PHP Error was encountered
Severity: Warning
Message: mkdir(): Invalid path
Filename: drivers/Session_files_driver.php
Line Number: 117
Backtrace:
File: C:\xampp\htdocs\ci-test\application\controllers\login.php
Line: 7
Function: __construct
File: C:\xampp\htdocs\ci-test\index.php
Line: 292
Function: require_once
Hier ist der Code, an dem die Sitzungsdaten festgelegt werden sollen.
$sess_array = array(
'id' => 1,
'username' => '[email protected]'
);
$this->session->set_userdata($sess_array);
Teilen Sie eine Lösung, die mir geholfen hat, und setzen Sie Ihre Konfigurationsvariable wie folgt:
$config['sess_save_path'] = sys_get_temp_dir();
ändere deine application-> config-> config.php und setze
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
& SQL-Abfrage ausführen
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`)
);
In der config.php sollte sess_save_path
sys_get_temp_dir();
sein, dann wird der Fehler von mkdir(): Invalid path
behoben.
Sie haben den Fehler festgestellt, weil Sie keinen $config['sess_save_path']
hatten.
Gehe zu dir config.php
und setze
$config['sess_save_path'] = NULL;
Dies kann auf die Version PHP und codeIgniter zurückzuführen sein. Für mich funktionierten PHP 7.1.25 und CI 3.0.4 nicht. Sie können dies mit session_id () überprüfen. Die Sitzung wurde aktualisiert. Mit CI 3.1.2 funktioniert es.
Versuchen Sie dies in Ihrer config.php $config['sess_save_path'] = NULL
Wenn $config['sess_save_path']
sys_get_temp_dir()
ist, werden die Sitzungsdaten im Systemordner gespeichert.
Und wenn Sie eine Datenbanktabelle als ci_sessions mit folgender config.php haben:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
Die Daten werden in der Datenbank gespeichert. In diesem Fall können Sie $config['sess_save_path'] = NULL;
$config['sess_save_path']
in der Konfigurationsdatei.