Я создал сайт в CI и имею систему входа в систему, которая отлично работает в Firefox, но не в Chrome или IE. В тех двух случаях, если имя пользователя и пароль верны, он просто перенаправляет (я думаю) обратно на страницу входа, а не на страницу с ошибкой входа в систему или на сайт (как следует). Я заметил, что это не похоже на создание файла cookie в Chrome, но в FF.
Вот код в моем контроллере, который устанавливает cookie и перенаправляет после аутентификации:
$newdata = array( 'username' => $_POST['login_username'], 'real_name' => $name, 'user_id' => $uid, 'logged_in' => TRUE ); $this->session->set_userdata($newdata); //echo $newdata; redirect('/site/index');
Любые идеи, почему это может произойти?
благодаря
Убедитесь, что $ _SESSION действительно задано. В CI вам может потребоваться выйти изящно, чтобы очистить то, что в $ this-session, до «реальной» переменной сеанса.
добавьте сериализацию эха ($ _ SESSION), чтобы вы знали, что происходит (до redir).
и проверить, как закончить Ci-запрос изящно.
Я тоже столкнулся с этой проблемой … session userdata проиграл для Chrome и IE, но нормально в Firefox. Это произошло из-за неправильной настройки в config / config.php
Я должен был явно установить cookie_domain
Чтобы сделать это автоматически в будущем, я использовал эту команду … сорвал форумы CI.
$config['cookie_domain'] = str_replace("http:/","",str_replace("https://","", $config['base_url']));
Я добавил эту строку, и все было в порядке.
Для меня он решил просто добавить больше времени на файл cookie, у меня было 3600, поэтому я изменился на 7200. Кажется, проблема со временем на моем сайте. Может помочь кому-то.
Корректировка имени файла cookie может решить проблему в конфигурациях CI, чтобы удалить подчеркивания, творит чудеса. Проблема CodeIgniter Session в IE объясняет детали довольно хорошо.
В моем случае проблема заключалась в том, что $config['base_url']
пуст. Поэтому я установил его в свой домен
$config['base_url'] = 'http://yourdomain.com/';
CodeIgniter имеет некоторые проблемы, если указанный домен для файлов cookie является localhost
, я установил поддельный домен с структурой имен реального домена в файл hosts, и он работает.