web-dev-qa-db-fra.com

erreur de session dans codeigniter?

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

Partageant une solution qui m'a aidé, essayez de définir votre variable de configuration comme:

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

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`)
);
11
Md. Khairul Hasan

Dans config.php sess_save_path devrait être sys_get_temp_dir();, cela résoudra l'erreur mkdir(): Invalid path

6
Md Rashadul Islam

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;
5
Saty

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. 

1
ben

Essayez ceci dans votre config.php $config['sess_save_path'] = NULL

0
Ambal Mani

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;

0
Md Rashadul Islam
  1. Utilisez le chemin absolu pour $config['sess_save_path'] dans le fichier de configuration.
  2. Pointez-le sur votre répertoire temporaire accessible en écriture.
  3. Assurez-vous que le répertoire se trouve sous le répertoire autorisé dans Apache ou nginx config.
0