2015-01-17 2 views
0

У меня есть 3 рабочих приложения, которые я перемещаю с одного производственного сервера на другой. Все 3 приложения используют Auth. Все 3 работают нормально на исходном сервере. На новом сервере одно из этих приложений работает так, как должно быть (это, случается, CakePHP 1.3), то есть после входа в данные сеанса пользователя (например, имя пользователя и роль) доступно в моем PagesController после перенаправления.Сессия CakePHP кажется разрушенной после перенаправления на новый сервер

В других 2 приложениях (один из них 1,3, а другой - 2,3) после переадресации имени сеанса данные сеанса, похоже, исчезли. Я подтвердил это путем отладки $ this-> Auth-> user() в PagesController. Я также подтвердил, что данные сеанса есть после вызова $ this-> Auth-> login() в UserController, но ушли после перенаправления.

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

Любые предложения?

ответ

0

Перед запуском класса попробуйте использовать ob_start() или session_start() в верхней части AppController.

Спасибо ..!

+0

Ritish, я в конечном итоге положить CakeSession :: Start() в методе beforeFilter() из AppController. (Я подумал, что это лучшее место, чтобы выразить это :-) Спасибо за ваше предложение. –

0

Я также разместил этот вопрос и обходные пути в группе CakePHP Google и добавил более подробную информацию. Перейдите по ссылке: https://groups.google.com/forum/#!topic/cake-php/ORfK1b9AYTU

Проблема в том, что сеансы не начинаются после перенаправления. Обход - это вызов CakeSession :: start() в AppController в beforeFilter(), хотя это не обязательно.

Кен

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