ZendFramework: как сделать так, чтобы Zend_Auth ставил куку на все поддомены?

программирование php zend zendframework

Собственно, в бутстрапе имею следующее:

======================
/**
* Запускаем сессию
* @return Zend_Auth
*/
protected function __initSession() {

// TODO: сессия не растространяется на все поддомены, надо исправить

// Получаем объект авторизации
$auth = Zend_Auth::getInstance();

// Параметры сессии
Zend_Session::setOptions(
array(
'cookie_domain' => '.mydomain.com',
'cookie_httponly' => 'on'
)
);

// Возвращаем объект авторизации
return $auth;

}
======================

Мне нужно, чтобы при первом открытии страницы по адресам mydomain.com и user.mydomain.com ставилась одна и та же кука сессии на домен .mydomain.com, однако же при открытии страницы mydomain.com кука ставится на mydomain.com, а при открытии страницы user.mydomain.com кука ставится на user.mydomain.com.

Где что подправить?

Примечание:
Проблема не в виртуалхостах.
У меня одно и то же происходит и на сервере и на локальном компе. На локале стоит денвер, на сервере последний апач.
Поддомены просто являются алиасами, т.е. виртуалхост прописан вот так:
ServerName mydomain.com
ServerAlias *.mydomain.com

Т.е. воевать нужно с Zend_Session, только как - пока не понимаю.

Примечание:
Проблема решилась следующим образом:
Для хоста mydomain поставить точку перед именем не удалось. Видимо из-за того, что фреймворк проверяет валидность доменов и не считает домен без зоны правильным. Добавил левую зону, вроде mydomain.dm, всё сразу стало работать.

А в указанном мной выше примере надо было писать вот так:


======================
/**
* Запускаем сессию
* @return Zend_Auth
*/
protected function _initSession() { /* Заметьте, убрал двойной подчерк, оставил одиночный, иначе функция просто не запускалась в бутстрапе */

// Запускаем сессию с параметрами
Zend_Session::start(
array(
'cookie_domain' => '.mydomain.com',
'cookie_httponly' => 'on'
)
);

// Получаем объект авторизации
$auth = Zend_Auth::getInstance();

// Возвращаем объект авторизации
return $auth;

}
======================

Удачи, пользуйтесь.
Ответы:
Вот тут http://forums.zend.com/viewtopic.php?f=69&t=1702 чувак пишет, что проблема решилась после того, как он задал фиксированные имена виртуалхостов. Напиши, какой сервер и как настроены поддомены, может разберемся.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.