Собственно, в бутстрапе имею следующее:
======================
/**
* Запускаем сессию
* @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;
}
======================
Удачи, пользуйтесь.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.