CodeIgniter с логином Ion AUTH не запоминается

Я работаю над входом в систему CodeIgniter с плагином аутентификации ION. Я не знаю почему, но у меня такое поведение: я заполняю форму входа, отправляю ее, пользователь сопоставляется, CI сохраняет эти данные в столбец «user_data» в таблице default_ci_sessions, и я перезагружаю страницу и пользователя по-прежнему не вошел в систему, а в таблице default_ci_sessions создается новая строка с пустым столбцом «user_data». Вы знаете, где может быть проблема? Вот мой конфиг для сессий:

$config['sess_cookie_name']     = 'pyrocms' . (ENVIRONMENT !== 'production' ? '_' . ENVIRONMENT : '');
$config['sess_expiration']      = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
// don't change anything but the 'ci_sessions' part of this. The MSM depends on the 'default_' prefix
$config['sess_table_name']      = 'default_ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

Решено. Мне нужно установить настройки cookie для этого:

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "";

person Jan Kožušník    schedule 08.03.2016    source источник
comment
Пожалуйста, подумайте над тем, чтобы ответить на свой вопрос с помощью самопринятого ответа, чтобы он был помечен как отвеченный и не появлялся при поиске открытых вопросов.   -  person Steve Chambers    schedule 14.03.2016


Ответы (1)


Я вижу, что вы сами ответили на проблему, но чтобы добавить решение, чтобы его было легче найти другим с той же проблемой, я добавил его сюда с дополнительным объяснением того, почему это решение.

Ваш полный код:

$config['sess_cookie_name']     = 'pyrocms' . (ENVIRONMENT !== 'production' ? '_' . ENVIRONMENT : '');
$config['sess_expiration']      = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'default_ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

//Added code to fix issue 
$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "/";
  • $config['cookie_prefix'] Устанавливает префикс, если вам нужно избежать коллизий
  • $config['cookie_domain']; Установите .ваш-домен.com для файлов cookie для всего сайта.
  • $config['cookie_path']; Обычно это косая черта

установка каждого из них равным "" в значительной степени гарантирует, что файлы cookie установлены для всего домена.

person Frederik Petersen    schedule 15.03.2016
comment
копирование и вставка собственного решения OP - не лучший способ действовать. По крайней мере, вы можете изменить форматирование кода и добавить некоторые детали. Ты такой ленивый? :/ - person fusion3k; 15.03.2016
comment
Его попросили опубликовать это как решение проблемы, так как он решил ее сам. Если он выложит это сам, я удалю это. Если нет, то ему по крайней мере проще теперь добавить решение. Проблема с наличием решения как части вопроса заключается в том, что его трудно увидеть тем, кто посещает сайт в поисках решения. Это также облегчает просмотр решения. - person Frederik Petersen; 15.03.2016