Сессия CodeIgniter не записывает в БД после обновления версии PHP до 7.2.10 - PullRequest
0 голосов
/ 15 ноября 2018

Я обновил свою версию PHP с 5.6 до 7.2.10, и внезапная запись данных сеанса в базу данных MySQL перестала работать (таблица сеансов пуста). Я также обновил версию CodeIgniter до 3.1.9 (только системная папка), но это не помогло. Я думаю, что проблема может быть в некоторых конфигурациях для PHP (или MySQL), потому что первое, что я должен сделать, это изменить сессию автозапуска в php.ini. Когда я получаю значение из $ this-> config-> item ('sess_driver'), я получаю «базу данных». Когда я получаю значения из $ this-> session, я получаю:

object(CI_Session)[14]
  public 'userdata' => null
  protected '_driver' => string 'files' (length=5)
  protected '_config' => null
  protected '_sid_regexp' => null

Это странно, потому что в более старой версии PHP я получаю «database» как значение _driver. Похоже, данные сеанса хранятся в файлах - когда я запрашиваю $ this-> session-> has_userdata ('id'), я получаю правильное значение, но оно должно быть сохранено в таблице сеансов базы данных, но это не так. Это моя часть конфигурации:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

Кто-нибудь встречает мою проблему или знает решение? Спасибо

1 Ответ

0 голосов
/ 16 января 2019

Я мог бы предложить вам решение.

  1. Перейти на сайт codeigniter.
  2. скачать последнюю версию codeiginter.
  3. Извлеки это.
  4. сделать переименовывать системную папку во что-то еще в существующем проекте
  5. вставьте новую системную папку, и вы сделали это.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...