Передача PHPSESSID между доменом и поддоменами

Гриша К.

Новичок
Андрейка
PHP:
<?php
session_start();				
$_SESSION['test'] = 233;
?>

{*

При тестировании приведенного выше php кода,
PHPSESSID передается поддоменам домена .vertebral-column.com в броузерах: IE 6.0, OPERA 8.0, Netscape 7.0 (2002 года), Netscape 8.1.
PHPSESSID не передается - в броузерах: Mozilla Firefox 1.5.0.9

Как написано в мануале описание функции session_set_cookie_params(), параметр domain указывать не обязательно, но для совместимости рекомендуется указывать имя домена (.example.com).


На другом домене, еще раз все сделав, получил результат, при котором куки вручную не ставится, а определяется лиш параметр сессии - имя домена с помощью session_set_cookie_params(),
в итоге PHPSESSID передается с домена на поддомен и наоборот, и на всех указанных выше браузерах.

Код для всех страниц требующих авторизации:
PHP:
<?php
session_start();				
session_set_cookie_params(0, '/', '.vertebral-column.com');
?>
Код для страницы, на которой определяем переменную сессии:
PHP:
<?php
session_start();				
$_SESSION['test'] = 233;
?>
*}
 

Андрейка

Senior pomidor developer
нет, не то... еще одна попытка
Вы забыли стартующий единную сессию для всех поддоменов vertebral-column.com
 

Гриша К.

Новичок
Андрейка, мы одновременно писали,
теперь думаю приведенный выше код верный.
 

Андрейка

Senior pomidor developer
Гриша К.
уважаемый Гриорий, я же просил - не писать свои умные тексты.. только код! сотрите всю эту хрень плиз.. я ее и на второй странице не читал, нинадо еще третью ..
 

Гриша К.

Новичок
Андрейка, посчитаем что я написал только первые 4 строчки выделенные синим.
Жду дальнейших рекомендаций.
 

Андрейка

Senior pomidor developer
первые 4 строчки не стартующий единную сессию для всех поддоменов vertebral-column.com
 

Андрейка

Senior pomidor developer
Гриша К.
молодец!1 ведь можешь когда захочешь.
теперь открывай первую страницу и читай вопрос - когда надо использовать сессион_сет_кукие_набор_парамс

пожалуйста откройте мануал и скопируйте сюда текст, отвечающий на вопрос когда (не "в каких случаях", а "где в скрипте") . ваши вопросы по этой цитате напишите ниже на новой строке, по одному на строчку. спасибо.
 

Гриша К.

Новичок
http://ru2.php.net/manual/ru/function.session-set-cookie-params.php
Set cookie parameters defined in the php.ini file. The effect of this function only lasts for the duration of the script. Thus, you need to call session_set_cookie_params() for every request and before session_start() is called.
session_set_cookie_params() должна вызываться раньше чем session_start()

А я вот руководствовался книжкой, там этого нету, английский знаю плохо. Но часть текста приведенную выше в промте перевел и понял.

В том сообщение в котором вы сказали удалить мои доводы, я привел неврный пример.

Хотя в конфиге у меня (едином для всех скриптов), сделано правильно, поэтому у меня все и сработало, а на vertebral-column.com неверно тоже:
PHP:
// Запуск сессии, если пользователь авторизован
if(isset($_REQUEST[session_name()]))
	session_start();	
	
// Параметры сессии
ini_set("session.save_path", "/tmp");
//session_set_cookie_params(0, '/', '.pozvonochnik');
Но это я сделал не из-за того что я знал как правильно.
Андрейка, спасибо за терпение и вывод меня к пониманию.

PHP:
<?php
session_set_cookie_params(0, '/', '.vertebral-column.com'); 
session_start();
$_SESSION['test'] = 233;                  
?>
 

Фанат

oncle terrible
Команда форума
как посмотреть есть ли в куке домен,
с помощью программы из фака на танке.
в cookie: только PHPSESSID,
значит, между доменами эта сессия работать не будет
Поясните пожалуйста для меня, непонимающего, конкретно где в PHPINFO я могу увидеть передается в куке домен или нет.
НИГДЕ
в phpinfo - нигде.
смотреть, если ли в куках домен, надо в НТТР заголовках.

в phpinfo смотрим, какая НАСТРОЙКА в пхп.
в заголовках смотрим, что РЕАЛЬНО передается.

у тебя в голове это всё сварего электросваркой - если есть настройка, то домены работают. А ЭТО НЕ ТАК. Настраивать ты можешь как угодно, но в реальности может быть все по-другому.
при эжтом надо проверять ОБА ПУНКТА
и настройку
и реальность
 

Гриша К.

Новичок
Фанат, спасибо за разъяснения и терпение

Сделал как описал выше + phpinfo() в конце:
при первой загрузке страницы,
в phpinfo() в подразделе HTTP Response Headers вижу что кука выставляется для указанного имени домена, а если session_set_cookie_params не запускать, то и параметра domain не будет:
Set-Cookie PHPSESSID=873878237a3024322417af4161a8cb6d; path=/; domain=.vertebral-column.com

Получается, что это можно посмотреть и в PHPINFO().

+ Установил плагины для просмотра заголовков, и там теже параметры Set-Cookie, если домен для куки не указал, то в этом параметре его не будет, ну а если указал то будет.
Плагины эти очень полезны, я в этом убедился.
 
Сверху