Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Недоступны сессии из класса

1.8K
05 апреля 2013 года
trivium
128 / / 31.01.2010
Доброго времени суток.
Есть самописный MVC-фрэймворк, в котором страницы выглядят так: http://{domain}/{controller}/{action}
Где controller это название класса, а action название функции.
Вызов идёт так:
 
Код:
$XController = new $tControllerName;
$XController->{$this->aAction}();
Всё работает и запускается, если запускать из браузера, но скрипт должен запускаться через flash загрузчик плагина Uploadify и почему-то до вызова этого метода доступны перменные из массива $_SESSION, а после этого вызова нет. При чём даже в констукторе класса они недоступны. Файлы сессии на винте есть, сессия сама не обрывается, т.е. переавтиризироваться не надо. И массив сессий нигде не очищается. Что может присходить такое странное?
37K
05 апреля 2013 года
freets
97 / / 15.10.2010
Пройдись по следующим ссылкам, кажется то, что надо... sessions-and-uploadify и uploadify-session-problem
1.8K
06 апреля 2013 года
trivium
128 / / 31.01.2010
Да, я уже смотрел их. Но там описано то, что сессия вообще недоступна в скрипте вроде как, а у меня она доступна, но после вызова метода обработчика перестаёт быть доступна.
37K
08 апреля 2013 года
freets
97 / / 15.10.2010
Что значит сессия недоступна?
Цитата:
you cannot solve this because uploadify has own session ID which is created by flash player. In other words the flash player access the uploadify script as a new user and gets a new session. The only way you can solve this is to pass current page session_id through post to the uploadify script.


Разве не это?

1.8K
08 апреля 2013 года
trivium
128 / / 31.01.2010
Делаю вот так при вызове:
Код:
$file = fopen('C:/777.txt', 'a');
                fwrite($file, $this->aAction."\r\n");
                if ($this->aAction == 'upload_files')
                {
                    $sess_id = session_id();
                    $sess_name = session_name();
                    session_write_close();
                    $XController = new $tControllerName($sess_id, $sess_name);
                    $file = fopen('C:/777.txt', 'a');
                    fwrite($file, $_SESSION['AUTH']."\r\n");
                }
                else
                    $XController = new $tControllerName;
Потом в конструкторе так:
Код:
function __construct($sess_id = NULL, $sess_name = NULL)
    {
        if ($sess_id)
        {
            session_write_close();
            session_id($sess_id);
            session_name($sess_name);
            session_start();
            $file = fopen('C:/777.txt', 'a');
            fwrite($file, 'CONSTRUCT: '.$_SESSION['AUTH']."\r\n");
        }
И всё равно в сессии ничего нет...
Где может быть ошибка?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог