Пользуйтесь обрабатывающей терминал библиотекой как модуль проклятий :
модуль проклятий предоставляет интерфейс библиотеке проклятий, фактическому стандарту для портативной усовершенствованной терминальной обработки.
Я не совсем понимаю, но я попробую. Я думаю, что речь идет о настройке PHP под названием session.cookie_domain
.
Предполагается, что ваши веб-сайты имеют следующие URL-адреса:
Требуемый параметр: .example.org
.
Вы можете настроить это в php.ini
, файл .htaccess
или даже в самом PHP:
<?php ini_set('session.cookie_domain', '.example.org'); ?>
Если ваши веб-сайты работают на двух совершенно разных доменах, например:
... тогда нет возможности поделиться файлом cookie между этими двумя разными доменами.
Если у вас два разных домена, я бы предложил следующее:
На «www.mainDomain.com» поместите ссылку на «www.fr. subDomain.com "и передайте cookie в свой файл просмотра:
$session_cookie = $_COOKIE[Configure::read('Session.cookie')];
echo $html->link('See French Site', 'http://www.fr.subDomain.com/?session_key='.$session_cookie);
Затем на французском сайте добавьте немного кода, имитирующего cookie в app_controller.php> beforeFilter ().
function beforeFilter() {
if(!empty($this->params['url']['session_key']) {
// Setup variables here...
setcookie(Configure::read('Session.cookie'), $session_cookie, time()+360000, '/', $domain);
// You could use CAKE's setcookie command here.
}
}
Теперь, когда cookie совпадают , вам придется либо использовать сеансы базы данных, либо сеансы на основе файла пирога. Прочтите инструкции в core.php, чтобы их настроить.
Это должно позволить вам использовать один и тот же сеанс на разных сайтах. Я' m фактически в процессе реализации ACL для нескольких сайтов с одним логином. Это может быть немного сложно, но просто делайте это шаг за шагом, у вас все будет хорошо. Также не бойтесь сразу перейти к коду ядра Cake, чтобы увидеть, как он работает.
@dooltaz Это отличное решение. Проблема в том, что торт, кажется, ставит печенье после меня. Вместо этого я отправил пользователю метод перенаправления, а затем переместил настройку cookie в afterFilter
function afterFilter() {
if (!empty($this->params['url']['session_key'])) {
// Setup variables here...
setcookie(Configure::read('Session.cookie'), $this->params['url']['session_key'], time()+360000, '/');
// Cakes cookie method will put your cookie name in [] so it does not work.
}
}
(Также исправлена опечатка в вашем коде ..)