Я использовал codeigniter 2.1.0 для разработки сайта и электронной коммерции для клиента. Сайт работает хорошо около 3 месяцев, а затем внезапно логины не прилипают, данные сеанса не устанавливаются. Я проверил базу данных и заметил, что на каждой загрузке страницы создается новый сеанс.
Вот мое значение конфигурации
$config['sess_cookie_name'] = 'myu'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = FALSE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = '_sessions'; $config['sess_match_ip'] = TRUE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 3600; $config['cookie_prefix'] = ""; $config['cookie_domain'] = ""; $config['cookie_path'] = "/"; $config['cookie_secure'] = FALSE;
Я редактировал поле user_agent в таблице сеанса для размещения длинных строк user_agent. В чем может быть проблема? я буду благодарен за любую помощь
Убедитесь, что у вас есть правильный домен, установленный в /application/config/config.php
в $config['cookie_domain']
Вы также должны проверить размер «user_agent» в таблице сеанса. У меня возникли проблемы с «varchar (40)», поскольку пользовательский агент Firefox в MacOS (горный лев, версия 20.0) сообщает вам более 60 символов в вашем UA.
Изменение поля из «varchar (40)» на «varchar (255)» решило мою проблему.
Я отправляю это в надежде, что это поможет другим людям. Я пробовал многие из предложений, упомянутых на нескольких сайтах, и работал над этим в течение 2 дней. Ни одно из решений не работало.
Затем я решил проверить, что было показано в моем cookie. Я устанавливаю $config['sess_encrypt_cookie'] = FALSE;
в файле config.php, чтобы я мог читать данные и удалять все мои старые файлы cookie. Я также изменил $config['sess_cookie_name']
на имя веб-сайта. Первоначально это была «цисессия» по умолчанию. Внезапно он начал нормально работать. Я не знаю, было ли это очищение от моих старых файлов cookie или отключение шифрования или изменение имени, которое имело значение, но я рад, что он наконец работает. Я предполагаю, что, возможно, мой cookie был поврежден. Поскольку я видел сайты, предлагающие совершенно разные советы для одних и тех же настроек (например, некоторые говорят, что оставить ['cookie_domain] пустым, некоторые говорят добавить в свой корневой домен (не менее 2 периодов) и т. Д.), Я включаю в себя мои настройки в файле config.php:
$config['sess_cookie_name'] = 'easyeverydayenglish'; $config['sess_expiration'] = 14400; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = FALSE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = TRUE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300; $config['cookie_prefix'] = ""; $config['cookie_domain'] = ".eee.loc"; $config['cookie_path'] = "/"; $config['cookie_secure'] = FALSE;
Теперь о моей следующей проблеме пытается заставить CI работать на goDaddy. Arghh.