Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление сессии происходит только после CTRL+F5, CodeIgniter, session 
:(
    Опции темы
Rodman
Дата 11.11.2013, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Добрый день

Я начал изучать CodeIgniter (все пожелания в качестве кода и моего разума можете оставить при себе - я новичек)

Но суть в том, что следующий код на моем сервере срабатывает только после повторного нажатия на CTRL+F5, а не после вызова метода
Код

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

    class Main extends CI_Controller 
    {
        public function __construct()
        {
            parent::__construct();
        }
        
        public function index()
        {
            if($this->session->userdata('user'))
            {
                echo 'OK!' ;
            }
            else
            {
                echo 'FAIL!' ;
            }
        }
           
        
        public function login()
        {
            $this->session->set_userdata('user', '123') ;
            //redirect('main') ;
        }
        
        public function logout()
        {
            $this->session->unset_userdata('user');
            redirect('main');
        }
    }     


т.е. при вызове метода logout данные из сессии должны удаться и происходить редирект.
редирект происходит, но если я принудительно (в адресной строке браузера) открываю данную страницу, то срабатывает код из функции index и сразу выводит ОК!, а если нажимаешь F5 или CRTL+F5 то становиться FAIL!

Пробовал проверять в разных браузерах (Хром, фокс, эксплорер) - везде все аналогично.

НО на локале все нормально.

подозрения на некие настройки сервера... что это может быть?

Спасибо
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Sanchezzz
Дата 12.11.2013, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Вы хоть и не просили но я должен сказать:
CodeIgniter - умер, я вам рекомендую  переходить на более развивающиеся фреймворки например laravel4, Yii2

Код

function logout(){
        $this->session->userdata = array();
        $this->session->sess_destroy();
        redirect('home', 'refresh');
}


Это вроде баг редиректа, нужно сделать закрытие session_write_close(); что бы сессия записалась и потом сделать редирект или код выше убиваем сессию.


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Rodman
Дата 12.11.2013, 11:29 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Sanchezzz, мне фиолетово на Ваши рекомендации.

Я задал конкретный вопрос, и не получил на него ответа. Ваш код НЕ РАБОТАЕТ!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ksnk
Дата 12.11.2013, 14:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



CodeIgniter, видимо, не при чем. Из кэша грузится старая страница. На сервере, случайно, не nginx стоит? 

Для проверки можно в методе logout поставить какую-нибудь куку, временную, неиспользуемую с уникальным значением (nginx перекэширует страницу). Или адрес перехода на main как нибудь унифицировать, добавив в адрес перехода уникальную ненужную переменную (если виноват не nginx).
 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Rodman
Дата 14.11.2013, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ksnk, сделал следующим образом

Код

   public function logout()
        {
            $this->session->set_userdata('admin_data', 'sad');
            $this->session->unset_userdata('admin_data');
            $this->session->set_userdata('data', 'sad1');
            redirect('login/index/123');
        }


но не помогло, и nginx не установлен...

Кто то блокирует другой... или держит крепко кеш
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Sanchezzz
Дата 14.11.2013, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



session_write_close  пробовали выставить перед redirect ?



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
georgiy11
Дата 14.11.2013, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 29.9.2008

Репутация: нет
Всего: нет



CodeIgniter это ещё тот ужас  smile 
По проблеме, поставьте NativeSession вместо родного класса, он дюже глючный. Потом тренируйетсь, так как это само ядро может (а скорее всего оно так и есть) глючит.
Ещё раз скажу не в тему, ужасный фреймворк smile пришлось перегружать чуть ли не 80% ядра.

Добавлено через 1 минуту и 17 секунд
Sanchezzz
А уже есть стабильная версия с докой?
Это я так, спрашиваю, может уже чего то пропустил smile
PM MAIL   Вверх
krypt3r
Дата 20.11.2013, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 3
Всего: 16



Цитата
session_write_close  пробовали выставить перед redirect ?

Вряд ли это как-то повлияет, ибо CI не использует нативные PHP-сессии, а благополучно хранит свои сессии в куках ;) если не настроено использование БД.
PM MAIL   Вверх
Sanchezzz
Дата 20.11.2013, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



krypt3r, да прав кто то был что сказал ###. посмотрел я исходники и не обнаружил
session_set_save_handler  smile 

Вас спасет только нативный вариант

georgiy11,  вы про yii2  да можно уже использовать, только  нужна часто composer упдейтить)


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1722 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.