Ошибка входа в систему, сеанса и перенаправления кода в Internet Explorer? - PullRequest
6 голосов
/ 09 ноября 2009

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

Логин всегда работает, когда я использую Firefox. Вход в систему последовательно работает в некоторых браузерах IE7, но постоянно происходит сбой в других браузерах IE7.

При трассировке кода я вижу, что models / redux_auth_model.php успешно аутентифицирует пользователя, записывает информацию о пользователе в $ this-> session-> set_userdata () и перенаправляет их на страницу участника по моему выбору. , Вот код:

public function login($identity = false, $password = false)
{
            $identity_column = $this->config->item('identity');
            $users_table     = $this->tables['users'];

            if ($identity === false || $password === false || $this->identity_check($identity) == false)
            {
                return false;
            }

            $query = $this->db->select($identity_column.', email, password, group_id')
                           ->where($identity_column, $identity)
                           ->where('active', 'Active')
                           ->limit(1)
                           ->get($users_table);

        $result = $query->row();

        if ($query->num_rows() == 1)
        {
            //$password = $this->hash_password_db($identity, $password);

           if (!empty($result->activation_code)) { return false; }

                if ($result->password === $password)
                {
                    $this->session->set_userdata($identity_column,  $result->{$identity_column});
                    $this->session->set_userdata('email',  $result->email);
                    $this->session->set_userdata('group',  $result->group_id);
                    return true;
                }
        }

        return false;
}

Я выполнил дамп переменной $ this-> session в IE7 и FF и подтвердил, что все данные пользователя сохранены до перенаправления. Сессия содержала мою электронную почту, информацию о группе и информацию о $ identity_column.

Однако после перенаправления данные сеанса пусты в некоторых браузерах IE7, поэтому CI продолжает загружать меня из системы. Он полностью исправен в других браузерах IE7 и всегда исправен в Firefox.

Почему данные сеанса зависят от браузера?

Любые идеи о том, как устранить эту проблему дальше? Я сбит с толку ...

Ответы [ 12 ]

0 голосов
/ 18 февраля 2013

Я ненавижу IE !!!

теперь работает, предоставляя P3P нашим контроллерам, решаем проблему:

class Chupacabra extends CI_Controller {


    function __construct() {
        parent::__construct();
        header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');


    }
0 голосов
/ 25 ноября 2011

Проблема в том, что IE запрещает куки-файл, который пытается установить CI. Нативные сеансы - это один из способов, однако, если вы хотите продолжать использовать сеансы CI, я успешно справился со следующим устранением неполадок:

  • Убедитесь, что настройка $ config ['cookie_domain'] в config.php не пуста
  • Удалите подчеркивание из $ config ['sess_cookie_name'], например, измените "ci_session" на "cisession"
  • Проверьте правильность времени сервера
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...