Сессия теряется при смене представления PHP / CodeIgniter - PullRequest
0 голосов
/ 20 сентября 2018

Я занимаюсь разработкой приложения и использую переменные сеанса для идентификации зарегистрированного пользователя, все работает нормально, пока я не изменю представление из индекса.Это мой контроллер входа в систему

$this->session->set_userdata('id', $obj[0]->ID);
header('Location: mydomain.com/landing');

У меня нет проблем с этим, на самом деле, если я делаю

echo $this->session->userdata('id');

Возвращает предыдущую информацию, сохраненную в сеансе.

Я загрузил сессию librery в файл autoload.php

$autoload['libraries'] = array('database', 'session');

Когда я пытаюсь загрузить вид приземления, существует проверка, чтобы узнать, кто вошел в систему

<?php defined('BASEPATH') OR exit('No direct script access allowed');
  if( !$this->session->has_userdata('id') ){
    header('Location: midominio.com');
  }
  else{
?>
<html></html>
<?php
}
?>

Каждый раз, когда он перенаправляетВ индекс, если я напечатал $this->session, он возвращает

object(CI_Session)#16 (4) {
  ["userdata"]=>
  &array(1) {
    ["__ci_last_regenerate"]=>
    int(1537469720)
  }
  ["_driver":protected]=>
  string(5) "files"
  ["_config":protected]=>
  &array(9) {
    ["cookie_lifetime"]=>
    int(7200)
    ["cookie_name"]=>
    string(10) "ci_session"
    ["cookie_path"]=>
    string(1) "/"
    ["cookie_domain"]=>
    string(29) "mydomain.com"
    ["cookie_secure"]=>
    bool(false)
    ["expiration"]=>
    int(7200)
    ["match_ip"]=>
    bool(false)
    ["save_path"]=>
    string(34) "/opt/alt/php70/var/lib/php/session"
    ["_sid_regexp"]=>
    string(12) "[0-9a-v]{32}"
  }
  ["_sid_regexp":protected]=>
  string(12) "[0-9a-v]{32}"
}

Идентификатор при входе в систему не установлен.Что случилось?Я использую PHP7 и CI 3x

1 Ответ

0 голосов
/ 21 сентября 2018

Пожалуйста, установите следующие переменные в файлах конфигурации.

$config['sess_cookie_name'] = 'ci_session';
$config['sess_save_path'] = 'ci_sessions';

Если таблица ci_sessions не существует, пожалуйста, создайте таблицу ниже:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...