Два различных значения одной переменной в cookie?

lantastic

Новичок
Два различных значения одной переменной в cookie?

Изучаю учебник PHP5 Котерова и Костарева. Стр. 561 - Пример использования сессии.
PHP:
<?php
session_start();
if(!isset($_SESSION['count'])) $_SESSION['count'] = 0;
$_SESSION['count']++;
?>

<h2>Счетчик</h2>
<?=$_SESSION['count']?> раз<br><br>

<a href="<?=$_SERVER['SCRIPT_NAME']?>" target="_blank">дочернее окно</a>
открыв два независимых окна мы получим два независимо работающих счетчика => следовательно и PHPSESSID в cookie хранится разный... но как для одного URL (localhost/tmp/counter.php) в cookie хранится два различных значений переменной PHPSESSID?
 

Royal Flash

-=MaestrO=-
lantastic

открыв два независимых окна мы получим два независимо работающих счетчика
Счетчик один, переменная, как и ее значение хранится на сервере.
но как для одного URL (localhost/tmp/counter.php) в cookie хранится два различных значений переменной PHPSESSID?
PHPSESSID в твоем примере один и тот-же. Можеш проверить, дописав:
PHP:
<br>
<?php 
echo session_id();
?>
 

lantastic

Новичок
Счетчики независимы друг от друга, можешь проверить сам... Проверил и session_id - они тоже разные... Как так может быть?

Котеров и сам пишет: "данные сессии привязаны к окну браузера, а не к пользовательскому компьютеру"... как же так, всегда думал, что при запросе страницы, посылаются cookie именно для этого домена... как cookie может содержать два различных значения PHPSESSID?
 

lantastic

Новичок
Браузер один и тот же - IE. Так в чем же суть, я сам удивляюсь...
 

svetasmirnova

маленький монстрик
Только что попробовала пример в своём IE. Работает так, как и должно: одна сессия на все окна.
ОС Windows? Установки сессий в php.ini по умолчанию?

Есть такое подозрение, что это в т.ч. настройки браузера. Попытаемся проанализировать. Если сессия передаётся через куки, должно быть как я описала. А если только через гет, то может возникнуть твой вариант.
 

lantastic

Новичок
Одна сессия, если порождаешь дочернее окно!

А ты попробуй открыть два независимых окна! Котеров об этом и пишет: "данные сессии привязаны к окну браузера, а не к пользовательскому компьютеру"...

Помогите ребята понять в чем суть? :( Котерову что ль написать про эту непонятность? :)
 

svetasmirnova

маленький монстрик
>Одна сессия, если порождаешь дочернее окно!
Без разницы. Суть в твоих настройках.
 

SelenIT

IT-лунатик :)
Мои наблюдения: для двух независимых окон IE создает два разных процесса. При порождении дочернего окна с помощью ссылки этого не происходит. Для Firefox-а процесс один (и сессия тоже одна) в обоих случаях.
Можно выдвинуть гипотезу, что cookie привязаны к процессу.
Это косвенно подтверждает и msdn:
Session cookies, which do not have an expiration date, are stored in memory and are available only to the process in which they were created.
 

svetasmirnova

маленький монстрик
Фанат
Открыла 2 blank окна. Запустила в первом http://127.0.0.4/session2.php со скриптом lantastic, 5 раз перегрузила. Во втором открыла http://127.0.0.4/session2.php, счётчик == 6. (до этого был вариант с "дочерним" окном и окном, открытым после того, как в пердыдущее была загружена тестовая страница). Придётся теперь выяснять в чём дело :)

-~{}~ 26.07.05 20:55:

Понятно. Только по-русски плохо напишу, извините. То, что вы называете "независимыми окнами", возникает при запуске IE при помощи double-click. (У многих программ есть настроки "Limit to a single PROGRAM instance": не восприняла термин "окно" как instance) Я же в предыдущих случаях пользовалась Ctrl+N.
 

Фанат

oncle terrible
Команда форума
в ие была как-то настройка про инстанции. а сейчас не нашёл.
 

lantastic

Новичок
Действительно, в Firefox все нормально :) Браузер все-таки тоже имеет значение здесь

P.S. Если куки привязаны к инстанциям IE - почему нельзя скажем на форумах одновременно залогиниться под двумя разными никами?
 

Фанат

oncle terrible
Команда форума
С чего ты взял, что нельзя?

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