Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача PHPSESSID между доменом и поддоменами 
:(
    Опции темы
Гриша
Дата 25.1.2007, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Здраствуйте.
Скажите пожалуйста, каким образом можно сохранять PHPSESSID например при авторизации на поддомене и после перехода на основной домен чтобы PHPSESSID сохранялась.
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
-=Ustas=-
Дата 25.1.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Попробуй в главном домене прописать в самом начале:
Код

ini_set( 'session.cookie_domain', '.domain.ru' );

После чего инициализация сессии должна быть на главном домене, а в поддоменах как обчно стартуешь сессию и всё.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Гриша
Дата 25.1.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



-=Ustas=-, спасибо за ответ.

Прежде чем написать это сообщение, у меня уже был рабочий вариант, при котором PHPSESSID передается между поддомен <=> домен, на другом форуме, по приведенному мною примеру кода, мне  сначала сказали, что такого не может быть, потом я сделал демо пример, его посмотрели и согласились с тем что способ работает, но тот человек который мне отвечал, хороший знаток PHP, поэтому у меня закрались сомнения может быть я что-то не так делаю или ошибка броузера.
Решил задать вопрос здесь, посмотреть что ответят, ответ опять же такой, что нельзя передать сессию с поддомена на домен, в интернете я тоже не нашел, поэтому есть некие сомнения по поводу этого метода.

Вот рабочий вариант, котрый я попробовал на 2-х хостингах и разными браузерами (Mozilla / Netscape, Opera, IE):
Код

# Попробовал установить cookie-набор вручную на поддомене,  
# в таком случае PHSESSID сохраняетcя, 
# и получается что сохраняется между поддомен <=> домен: 
if(!isset($_REQUEST[session_name()])) 
{ 
    session_start(); 
    setcookie('PHPSESSID', session_id(), 0, '/', '.domain'); 
}


Получается, что при создании setcookie('PHPSESSID', session_id(), 0, '/', '.domain'); на поддомене, при указании в качестве параметра domain = основного домена,
броузер сохраняет куку для домена, а на поддомене используятся та кука, которая была создана на нем,
но так как оба PHSESSID одинаковые, то получается,
что это спосбом при котором например можно авторизоваться на поддомене, сохранять авторизацию на домене и наоборот.


Пример:
Код

Зайдите на http://vertebral-column.com/demo.php 
- здесь просто print_r($_COOKIE['PHPSESSID'])

Затем зайдите на поддомен http://blog.vertebral-column.com/demo.php
- на нем запускается сессия и сохраняется cookie набор для домена

А потом вернитесь на домен и вы увидете тот же PHPSESSID

--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Mal Hack
Дата 25.1.2007, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



PM ICQ   Вверх
Гриша
Дата 26.1.2007, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Mal Hack, спасибо за ответ,
я читал эту ссылку прежде чес создать тему на форуме.
А вы смотрели и пробовали мой пример (c исходниками)?

Зайдите на http://vertebral-column.com/demo.php 
Затем зайдите на поддомен http://blog.vertebral-column.com/demo.php
И наоборот, и вы увидете что PHPSESSID сохраняется.

Что вы скажете о таком варианте?

Это сообщение отредактировал(а) Гриша - 26.1.2007, 01:18
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Mal Hack
Дата 26.1.2007, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



В каких браузерах ты пробовал сию авторизацию?
PM ICQ   Вверх
Гриша
Дата 26.1.2007, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Mal Hack,
пробовал конкретно в IE 6.0, OPERA 8.0, Mozilla Firefox 1.5.0.9, Netscape 7.0 (2002 года), Netscape 8.1. 
На 2-х хостингах: PHP 4.3.9, PHP 4.4.4.
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Гриша
Дата 26.1.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Вот оно корректное решение:
Код

<?php
session_set_cookie_params(0, '/', '.domain'); 
session_start();
$_SESSION['test'] = 233;                  
?>

--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Glip
Дата 26.1.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 7
Всего: 18



это корректное решение только в рамках одного домена и его поддоменов. в статье же обсуждается вопрос о разных доменах не имеющих общего корня

Добавлено @ 10:27 
что гораздо интереснее


--------------------
user posted image
PM MAIL   Вверх
Mal Hack
Дата 26.1.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Glip @  26.1.2007,  10:27 Найти цитируемый пост)
это корректное решение только в рамках одного домена и его поддоменов. 

Причем, помнится мне, что раньше такая "фишка" не часто "прокатывала".
PM ICQ   Вверх
Гриша
Дата 26.1.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Цитата

это корректное решение только в рамках одного домена и его поддоменов. в статье же обсуждается вопрос о разных доменах не имеющих общего корня


Мне необходимо было чтобы сессия передавалась с домена на его поддомены и наоборот, в ссылке на топик приведенной 
Mal Hack задается вопрос о передачи сессси между доменами, конечно это более интересный вариант, но мне то нужен другой вариант.


Mal Hack,
как я описал выше тестирование прошло успешно,
Вот например для Mozilla Firefox, подходящее для остальных описанных выше браузеров, для передачи PHPSESSID хотябы только с домена на поддомен, решение без указания домена куки: session_set_cookie_params(0, '/', '.domain'); не подойдет, домен с точкой указываетс ядл совместимости, как написано в мануале.


Но вот что получается, задвая вопрос о передачи сессии с поддомена на домен, мне в ответ в разных местах говорили что так нельзя, или приводили ссылки на сложные статьи, и в интернете я не смог найти этого. А ведь это очень актуальный вопрос.
Учитывая то, что у доменов существует префикс www., и многие пользователи его используют, при старте сесссии на сайте www.domain, и при переходе например на domain, надоже сохранять сессию, и такие переходы в течение одной сесси, то же могут часто происходить. 
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.