2010-04-13 5 views
0

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

Могу ли я записать сеанс любого .ctp-файла?

Thanks.please помогите мне.

+0

Некоторый код поможет. – Young

ответ

2

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

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

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

1

Не думаю, что использовать CakePHP третью сессию полезно, так как Cake уже сделал это очень хорошо. И я считаю, что лучшим местом для проведения некоторых сеансов является контроллер, а не просмотр. См. Session in Cakephp's cookbook и Ajax helper of Cake Возможно, они помогли бы.

3

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

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

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

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

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

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

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