Я возлюсь с uploadify и cakephp (2.x) atm, но не могу заставить его работать.Он работал час назад и теперь волшебным образом разрушен.
В моем приложении cakephp есть бэкэнд с простой аутентификацией.Пользователи могут загружать изображения с помощью uploadify, и когда uploadify отправляет изображение на мой контроллер, я просто присоединяю sessionid в качестве параметра.
К сожалению, я получаю HTTP-ERROR (HTTP / 1.1 304 Not Modified).Исключение метода контроллера из аутентификации ($ this-> allow (...)) действительно помогает.Поэтому я предполагаю, что что-то не так в отношении аутентификации / сеанса.
Следующий шаг, который я предпринял, состоял в том, что я проверил, был ли передан SID, и он это сделал.проблема в точке, где идентификатор сессии становится установленным.Это происходит в beforeFilter контроллера следующим образом:
if (isset ($ this-> params ['session_id'])) {$ this-> Session-> id ($ this-> params ['идентификатор сессии']);}
Когда я добавляю этот фрагмент кода, происходит что-то, что я не могу объяснить / понять:
Я пытаюсь загрузить изображение с помощью uploadify в резервное копирование, и оно возвращается с ошибкой HTTP.Нажатие F5 / Refresh вызывает перенаправление в форму входа, хотя я на самом деле вошел в систему!Я также получаю новый SID.
И я на 99% уверен, что параметр session_id передается в контроллер и что $ this-> Session-> id () должен установить правильный SID.
Так почему я выхожу из системы?
Я НЕ выхожу из системы, когда вручную вызываю URL для моего контроллера (http://localhost/myapp/backend/upload/12345 * 12345 - SID!).Только если uploadify делает это.
Я также попытался установить низкий уровень Cake Security Level, но это не поможет.Это также происходит, когда я фиксирую идентификатор сеанса с параметром scriptData в сценарии uploadify js.
Когда я использую эту строку кода в методе моего контроллера:
$this->Session->id(1234);
echo $this->Session->id();
метод echos 1234но на странице просмотра моего бэкэнда все еще указывается исходное значение сеанса.Что, черт возьми, происходит?
Есть ли кто-нибудь, кто может иметь представление о том, что происходит, или, по крайней мере, кто знает, почему Session / Auth ведет себя так, как он?
Заранее спасибо залюбая помощь!
С наилучшими пожеланиями
i исправлено it.
Функция beforeFilter () моего контроллера выглядела так:
parent::beforeFilter();
if ( isset($this->params['session_id']) ) { $this->Session->id($this->params['session_id']); }
но идентификатор сеанса должен быть установлен ДО вызова функции parent :: beforeFilter ().
if ( isset($this->params['session_id']) ) { $this->Session->id($this->params['session_id']); }
parent::beforeFilter();
черт -.- потратил впустую столько времени на это ..