2011-01-06 2 views
0

, поэтому я переключил свое приложение на собственный класс сеанса, это кодигнитор из-за некоторых проблем с IE и сеансами. Однако теперь этот класс сеанса, похоже, очень быстро запускает людей. Я просмотрел весь код и не могу найти проблему. Вот родной класс сеанса: http://ellislab.com/codeigniter/wiki/Native_session/Проблемы с собственным классом сеанса Codeigniter

Также все мои конфиги являются настройками по умолчанию. Мне интересно, является ли это виной Native Session или моей собственной. Я использую bool var в другом скрипте, который используется для определения того, вошел ли пользователь в систему. Просто подумал, что я выброшу это.

BTW, Codeigniter 1.7.3, PHP 5

+0

Подробный блог: http: //goo.gl/EeUgk2 –

ответ

0

Таким образом, ответ был «просто использовать базу данных». Я закончил тем, что использовал способность CI использовать базу данных для данных сеанса. http://ellislab.com/codeigniter/user_guide/libraries/sessions.html См. Раздел «Сохранение данных сеанса в базу данных»

+0

О, я так и не понял почему * только * IE сделал бы это с регулярными сеансами. Ну, я думаю. –

+0

Извините Tyler, который regexp? Я заблудился. Не могли бы вы объяснить это немного? –

+0

ха-ха не * регулярные выражения *, ** обычный сеанс **, как и в случае с CI по умолчанию, с CI. –

0

CodeIgniters Сеансы не связанные с Sessions РНР. Они обновляют каждый (я думаю) 5 минут, не теряя связи с пользователем. Это функция безопасности, предотвращающая кражу сеанса. Чтобы сеанс был более доступным, вам нужно настроить таймауты в конфигурации.

$config['sess_expiration']  = 7200; 
$config['sess_time_to_update'] = $config['sess_expiration']; 

Теперь, время, прошедшее до обновления CI, это сеанс совпадает с истечением срока действия обычного сеанса.

0

Как говорит доктор Colossos, это нормально, чтобы переписать

$config['sess_expiration'] = 7200;

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

Единственная проблема, которую я помню о сеансах IE и CI, заключается в том, что CI использует undescore для имени сеанса coockie, и это то, что не нравится IE, поэтому, если вы измените имя в файле конфигурации сеансов проблема исчезает.

+0

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

+0

Вы запомнили вопрос! Отлично, возможно, у меня есть новые ответы;) Похоже, что IE doen't убивает куки-файлы, которые идентифицируют сеанс, независимо от того, что вы делаете. Это случается иногда, и только с IE. Не уверен, как хранение данных сеанса может повлиять (и решить) проблему, но частично решить проблему IE - использовать другой файл cookie на основе чего-то, что можно догадаться, но часто меняющегося, например, даты. –

+0

Интересно. Это вещь безопасности IE? И почему эта проблема не возникает чаще? –

Смежные вопросы