Поддомены и сессия

Тема в разделе "PHP", создана пользователем silent9, 21 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10
    при входе с основного домена (domain.ru) сессия доступна только с него
    как сделать доступной сессию и с поддоменов (user.domain.ru, user2.domain.ru, Перейти по ссылке и т.д)
     
  2. mozgon

    mozgon Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    141
    Симпатии:
    31
    записывай сессию в базу, потом при прверяй из базы а не из сесионных переменных. при логауте удаляй запись, ну и надо подчищать время от времени, логаут не все нажимают.
     
  3. Hemi-Sync

    Hemi-Sync Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    88
    Симпатии:
    38
    ini_set('session.cookie_domain', 'domain.ru');

    перед
    session_start();
     
  4. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10
    запишу сессию в базу, а как ее оттуда вытащить? откуда узнать какая сессия мне нужна?))

    session.cookie_domain пробовал, сессии всеравно разные ставятся
     
  5. Hemi-Sync

    Hemi-Sync Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    88
    Симпатии:
    38
    Отвечу сразу на оба эти замечания. Хранение сессии в базе не выход. Проблема не в установке сессии, а в том. что браузер ее не отдает при заходе на поддомен.

    Поэтому надо session.cookie_domain и потом поставить сессию. Причем эта кука будет говорить браузеру, что ее можно отдавать и при заходе на поддомен. Я так понял наблюдая за доменов в куке в браузере.

    Попробуй руками поставить куку. У меня лично на движке работает такой вариант

    PHP:
    ini_set('session.cookie_domain''domain.ru');
    session_start();
    setcookie(session_name(), session_id(), 7200"/");
    И это только при логине куку ставить.
     
Статус темы:
Закрыта.