it-swarm.com.ru

ошибка сеанса в 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);
24
bikram kc

Разделяя решение, которое мне помогло, попробуйте установить переменную конфигурации следующим образом:

$config['sess_save_path'] = sys_get_temp_dir();
132
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`)
);
11
Md. Khairul Hasan

В config.php sess_save_path должен быть sys_get_temp_dir();, тогда это разрешит ошибку mkdir(): Invalid path

6
Md Rashadul Islam

Причина, по которой вы столкнулись с ошибкой, заключается в том, что у вас не было $config['sess_save_path']

Перейти к вам config.php и установить

$config['sess_save_path'] = NULL;
5
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(), то данные сеанса будут храниться в системной папке.

И если у вас есть таблица базы данных в виде ci_sessions с нижеуказанным config.php:

$config['sess_driver'] = 'database'; $config['sess_cookie_name'] = 'ci_session';

Данные будут храниться в базе данных. В этом случае вы можете $config['sess_save_path'] = NULL;

0
Md Rashadul Islam
  1. Используйте абсолютный путь для $config['sess_save_path'] в файле конфигурации.
  2. Укажите его на доступный для записи временный каталог.
  3. Убедитесь, что каталог находится в каталоге, разрешенном в конфигурации Apache или nginx.
0
Engr Syed Rowshan Ali