Не могу получить сессию в cakePHP - PullRequest
0 голосов
/ 13 апреля 2010

У меня проблема с сеансом в cakephp. У меня есть один файл chat.php, который находится в папке webroot, но когда я запускаю этот файл с помощью ajax, я не могу найти сеанс, созданный из файла chat.ctp. так что у любого есть идея, как получить сессию в стороннем файле в cakePHP.

можно ли записать сессию в любой файл .ctp?

Спасибо. Пожалуйста, помогите мне.

Ответы [ 3 ]

3 голосов
/ 12 июля 2010

Да, это вполне возможно.

В APP / config / core.php найдите значение конфигурации "Session.cookie":

Configure::write('Session.cookie', 'CAKEPHP');

Затем во внешнем файле просто установите то же имя сеанса при запуске сеанса:

session_name('CAKEPHP');
session_start();
print_r($_SESSION);

Я слышал, что это не совсем понятно, но для меня решение выше уже работало в двух проектах.

2 голосов
/ 14 апреля 2010

Я предполагаю, что вы используете компонент Session для записи переменной сеанса, а затем пытаетесь прочитать ее из обычного 'php-файла вне области торта, используя переменную $ _SESSION.

Как вы уже поняли, это не гарантирует правильной работы. Лучший способ справиться с этим - интегрировать файл chat.php в торт, используя контроллер, действие и представление.

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

1 голос
/ 13 апреля 2010

Я не думаю, что это хорошая идея использовать стороннюю сессию в CakePHP, так как Cake уже сделал это очень хорошо. И я считаю, что лучшее место для создания некоторых сессий - это контроллер, а не просмотр. См. Сессия в кулинарной книге Cakephp и Ajax помощник Cake . Вероятно, они помогут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...