2010-11-24 1 views
1

Я создал сайт в CI и имею систему входа в систему, которая отлично работает в Firefox, но не в Chrome или IE. В тех двух случаях, если имя пользователя и пароль верны, он просто перенаправляет (я думаю) обратно на страницу входа, а не на страницу с ошибкой входа в систему или на сайт (как следует). Я заметил, что это не похоже на создание файла cookie в Chrome, но в FF.CodeIgniter Cookies, работающие в FF, но не в Chrome или IE

Вот код в мой контроллер, который устанавливает куки и перенаправляет после аутентификации:

  $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');  

Любые идеи, почему это может происходить?

Thanks

+0

Возможно, это может помочь: http://stackoverflow.com/questions/917475/creating-a-cookie-failing-with-safari-chrome-ie-but-working-with-ff – trix 2010-11-24 20:56:36

+0

Альтернативное решение может быть в эта почта. http://stackoverflow.com/a/29114118/1226309 – mariofertc 2015-03-18 04:30:43

ответ

2

Проверьте, действительно ли установлен параметр $ _SESSION. В CI вам может потребоваться выйти изящно, чтобы очистить то, что в $ this-session, до «реальной» переменной сеанса.

Добавить сериализацию эха ($ _ SESSION), чтобы вы знали, что происходит (до redir).

и проверить, как закончить Ci-запрос изящно.

1

Для меня это решило просто добавить больше времени к файлу cookie, у меня было 3600, поэтому я перешел на 7200. Кажется, проблема со временем на моем производственном сайте. Может помочь кому-то.

1

Настройка имени файла cookie может устранить проблему в конфигурациях CI, чтобы удалить подчеркивания, творит чудеса. В статье CodeIgniter Session Problem in IE подробно объясняются детали.

2

У меня тоже возникла эта проблема ... session userdata потерян для Chrome и IE, но в порядке с Firefox. Это было связано с неправильной настройки в конфигурации/config.php

Я должен был явно установить cookie_domain Чтобы сделать это Automagic в будущем я использовал эту команду ... сорваны на форумах CI.

$config['cookie_domain'] = str_replace("http:/","",str_replace("https://","", $config['base_url'])); 

Я добавил эту строку, и все было в порядке.

1

В моем случае проблема заключалась в том, что $config['base_url'] был пуст. Так я поставил его на мой домен

$config['base_url'] = 'http://yourdomain.com/'; 
0

CodeIgniter имеет некоторую проблему, если указанный домен для печенья является localhost, я установил поддельный домен с именем структуры настоящей домена в файл хосты, и это работает.

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