it-swarm.com.de

sitzungsfehler im Codeigniter?

wenn ich Sitzungsdaten in Codeigniter 3 festlegen möchte, wird ein Fehler wie

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

Hier ist der Code, an dem die Sitzungsdaten festgelegt werden sollen.

$sess_array = array(
         'id' => 1,
         'username' => '[email protected]'
       );
$this->session->set_userdata($sess_array);
24
bikram kc

Teilen Sie eine Lösung, die mir geholfen hat, und setzen Sie Ihre Konfigurationsvariable wie folgt:

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

ändere deine application-> config-> config.php und setze

$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-Abfrage ausführen

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

In der config.php sollte sess_save_pathsys_get_temp_dir(); sein, dann wird der Fehler von mkdir(): Invalid path behoben.

6

Sie haben den Fehler festgestellt, weil Sie keinen $config['sess_save_path'] hatten.

Gehe zu dir config.php und setze

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

Dies kann auf die Version PHP und codeIgniter zurückzuführen sein. Für mich funktionierten PHP 7.1.25 und CI 3.0.4 nicht. Sie können dies mit session_id () überprüfen. Die Sitzung wurde aktualisiert. Mit CI 3.1.2 funktioniert es. 

1
ben

Versuchen Sie dies in Ihrer config.php $config['sess_save_path'] = NULL

0
Ambal Mani

Wenn $config['sess_save_path']sys_get_temp_dir() ist, werden die Sitzungsdaten im Systemordner gespeichert.

Und wenn Sie eine Datenbanktabelle als ci_sessions mit folgender config.php haben:

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

Die Daten werden in der Datenbank gespeichert. In diesem Fall können Sie $config['sess_save_path'] = NULL;

0
  1. Verwenden Sie den absoluten Pfad für $config['sess_save_path'] in der Konfigurationsdatei.
  2. Verweisen Sie auf Ihr beschreibbares temporäres Verzeichnis.
  3. Stellen Sie sicher, dass sich das Verzeichnis in dem Verzeichnis befindet, das in Apache oder Nginx config zulässig ist.