Я недавно обновил форму 2.2.x до 3.0.0 со следующей процедурой обновления от codeigniter website. У меня возникли проблемы с новой библиотекой сеансов - это проблема.Codeigniter 3 - Session not working
У нас есть раздел входа, который зависит от подобласти и пользователя/передать полномочия даст вам определенные привилегии от ADMIN/Посредник/КЛИЕНТА/USER
Для того, чтобы определить правильные привилегии для пользователя мы построили клиентская БИБЛИОТЕКА (местоположение: приложение/библиотека), которую мы назвали Session_management, эта библиотека НЕ расширяет основной драйвер/библиотеку SESSION и никогда не имеет и не имеет расширения для другого класса, эта библиотека также автоматически загружается до CI 3.0. 0 все работает нормально.
Сначала этот Session_management делает __construct()
$this->CI =& get_instance();
$this->CI->load->model('users');
$this->CI->load->model('clients');
$this->CI->load->model('sessions');
$this->CI->load->driver('session');
$this->CI->load->library('password_hash');
$this->CI->load->helper('url');
$this->users = $this->CI->users;
$this->clients = $this->CI->clients;
$this->sessions = $this->CI->sessions;
$this->session = $this->CI->session;
$this->password_hash = $this->CI->password_hash;
До CI 3.0.0 я не имею никаких проблем в использовании
$this->CI->load->library('session');
, но по неизвестной причине (для меня) я НЕОБХОДИМО загрузить его через водителя
$this->CI->load->diver('session');
Если кто-то может объяснить, почему мне это нужно делать так t было бы здорово.
Когда пользователь отправляет свои учетные данные пользователя/пароля, запрашивается сеанс/подпись CONTROLLER, который запускает первую проверку формы, обеспечивая все успешно, вызывается метод входа в систему Session_management.
$success = $this->session_management->login
($this->input->post('email'), $this->input->post('password'));
В методе ВХОДА в классе Session_management связка сессий устанавливаются с помощью
$this->session->set_userdata();
$this->session->set_userdata('user_id', 0);
$this->session->set_userdata('user_name', '');
$this->session->set_userdata('client_id', 0);
$this->session->set_userdata('client_administrator', 0);
$this->session->set_userdata('reseller_administrator', 0);
Однако, когда я var_dump() сессию для всех своих данных сеанса он не имеет никакого отношения, и я не могу почему это так, никаких данных сеанса нет, кроме того, что мои защищенные поля образуют конфигурацию, которую я проверил дважды и трижды проверял и работает нормально, мой sess_save_path правильно хранит файлы сеанса, а остальные конфиги sess также правильны.
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = '/Users/******/Sites/********/tmp';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
Это сайт разработки на моем локальном OS X ИМАК, как я говорю до CI 3.0.0 все работает нормально.
Просто добавить, прежде чем я получаю ответ изречение «Вы должны использовать»
$this->load->library('session');
Я «HAD», чтобы загрузить его в качестве водителя, у меня нет выбора, я прочитал документацию и видели, как инициализировать сеанс library.
Если я попытаться загрузить его в качестве библиотеки
$this->load->library('session');
Это то, что я получаю
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Session::$session
Filename: libraries/Session_management.php
Line Number: 38
Для вашего исх: строка 38:
$this->session = $this->CI->session;
Это после попытки загрузить библиотеку сеансов
$this->CI->load->library('session');
Также для добавления в это сообщение re: сеансы базы данных/сеанс файла. Ярлыки базы данных были моим первым вариантом, обновили столбцы и индексы базы данных в соответствии с CI 3.0.0, поскольку упоминания и сеансы документации были и хранятся в таблице базы данных, когда я изменяю свой конфиг для использования базы данных, однако, читая производительность различия между сеансами файлов с сеансами базы данных под высокой нагрузкой, сеансы файлов не будут выполнять сеанс работы с базой данных, и поскольку создаваемый веб-сайт/платформа будет находиться под большой нагрузкой, сеансы базы данных не будут продвигаться вперед.
Как примечание: Сайт работает под subdomain.domain *** структура, где поддомен зарегистрирован в качестве названия компании на регистрацию фирмы т.е.
mycompany.mywebsiteurl.com
anothercompany.mywebsiteurl.com
Как ранее уже - до моего обновления до. CI 3.0.0 работал отлично.
Могу ли я также добавить: я проверил файлы своего журнала, я запускаю хвост -f для обновлений живого журнала - и он не видит никаких проблем с журналом.
Любая помощь, информация или что-нибудь, что могло бы поставить меня в правильном направлении, было бы оценено.
У меня также posted on the CI forum.
Итак, как вы решаете свою проблему? можете ли вы отредактировать свой ответ на его основе? –