web-dev-qa-db-ja.com

codeigniterのセッションエラー?

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);
25
bikram kc

私を助けた解決策を共有して、設定変数を次のように設定してみてください:

$config['sess_save_path'] = sys_get_temp_dir();
141
Wellyngton

アプリケーションを変更-> 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`)
);
12

Config.phpで_sess_save_path_はsys_get_temp_dir();である必要があり、mkdir(): Invalid pathのエラーを解決します

6

エラーが発生した理由は、$config['sess_save_path']がなかったためです

config.phpに移動して設定します

$config['sess_save_path'] = NULL;
6
Saty

PHPおよびcodeIgniterバージョンが原因である可能性があります。私にとって、PHP 7.1.25およびCI 3.0.4は機能しませんでした。 session_id()で確認できます。セッションが更新されました。 CI 3.1.2では動作します。

1
ben

Config.phpでこれを試してください$config['sess_save_path'] = NULL

0
Ambal Mani

_$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;_

0
  1. 構成ファイルで$config['sess_save_path']の絶対パスを使用します。
  2. 書き込み可能な一時ディレクトリを指定します。
  3. ディレクトリがApacheまたはnginx configで許可されているディレクトリの下にあることを確認してください。