codeigniter 3でセッションデータを設定する場合、次のようなエラーが表示されます。
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
セッションデータを設定するコードを次に示します。
$sess_array = array(
'id' => 1,
'username' => '[email protected]'
);
$this->session->set_userdata($sess_array);
私を助けた解決策を共有して、設定変数を次のように設定してみてください:
$config['sess_save_path'] = sys_get_temp_dir();
アプリケーションを変更-> config-> config.phpを設定
$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クエリの実行
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`)
);
Config.phpで_sess_save_path
_はsys_get_temp_dir();
である必要があり、mkdir(): Invalid path
のエラーを解決します
エラーが発生した理由は、$config['sess_save_path']
がなかったためです
config.php
に移動して設定します
$config['sess_save_path'] = NULL;
PHPおよびcodeIgniterバージョンが原因である可能性があります。私にとって、PHP 7.1.25およびCI 3.0.4は機能しませんでした。 session_id()で確認できます。セッションが更新されました。 CI 3.1.2では動作します。
Config.phpでこれを試してください$config['sess_save_path'] = NULL
_$config['sess_save_path']
_がsys_get_temp_dir()
の場合、セッションデータはシステムフォルダーに保存されます。
また、config.phpの下にci_sessionsとしてデータベーステーブルがある場合:
_$config['sess_driver'] = 'database'; $config['sess_cookie_name'] = 'ci_session';
_
データはデータベースに保存されます。この場合、_$config['sess_save_path'] = NULL;
_
$config['sess_save_path']
の絶対パスを使用します。