quand je veux définir des données de session dans codeigniter 3, il dit erreur comme:
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
Voici le code qui veut définir les données de session.
$sess_array = array(
'id' => 1,
'username' => '[email protected]'
);
$this->session->set_userdata($sess_array);
Partageant une solution qui m'a aidé, essayez de définir votre variable de configuration comme:
$config['sess_save_path'] = sys_get_temp_dir();
changez votre application-> config-> config.php et définissez
$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;
& Exécuter une requête SQL
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`)
);
Dans config.php sess_save_path
devrait être sys_get_temp_dir();
, cela résoudra l'erreur mkdir(): Invalid path
La raison pour laquelle vous avez rencontré l'erreur est parce que vous n'aviez pas de $config['sess_save_path']
Allez à vous config.php
et réglez
$config['sess_save_path'] = NULL;
Cela peut être dû à PHP et à la version de codeIgniter. Pour moi, PHP 7.1.25 et CI 3.0.4 ne fonctionnaient pas. Vous pouvez vérifier avec session_id (). La session a été rafraîchie . Avec CI 3.1.2, cela fonctionne.
Essayez ceci dans votre config.php $config['sess_save_path'] = NULL
Si $config['sess_save_path']
est sys_get_temp_dir()
, les données de session seront stockées dans le dossier système.
Et si vous avez la table de base de données ci_sessions avec ci-dessous config.php:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
Les données vont stocker dans la base de données. Dans ce cas, vous pouvez $config['sess_save_path'] = NULL;
$config['sess_save_path']
dans le fichier de configuration.