Отправляет email-рассылки с помощью сервиса Sendsay

[TC] php. SID при выключенном cookie

Здравствуйте, уважаемые!

Опять мучаюсь с примером из учебника:

session_name("test");
session_start();
session_register("counter");
$counter=$counter+1;
echo "<html><body>Обновите страницу, чтобы увеличить значение
счетчика!<br>";
echo "$counter - это значение счетчика<br>";
echo "SID равен ".SID."<BR>";
echo "<a href=1.php?<?=SID?>>Нажми здесь!</a>";
echo "</body></html>";

Примечание. Строку для отображения значения SID я ввел для тестирования.

Этот скрипт должен работать при выключенном cookie и только при нажатии
ссылки, а не кнопки F5! При первом запуске счетчик показывает 1 и SID равен
имени группы сессии и ее идентификатору. При обновлении страницы или нажатии
на ссылку значение SID куда-то девается, а счетчик, естественно, не
увеличивается.

Вопрос, почему SID становится пустым, хотя cookie никто не включал, и как
сделать, чтобы скрипт заработал?

Заранее всем благодарен,
Грызунов Александр. Самара.

Ответить   "eastreb" Tue, 28 Jul 2009 01:34:24 +0400 (#888924)

 

Ответы:

Vande omentaina, eastreb!

Это плохой метод. Как меня раньше учил сэнсэй Анатолий-сан, этого
метода в будущих версиях PHP вообще не будет. Да и в текущих он
работает только при register_globals=on, что само по себе нехорошо.
Попробуйте так:
$_SESSION['counter']=0;
И работайте с элементами суперглобала $_SESSION.

Ответить   Anarendil Tue, 28 Jul 2009 17:13:21 +0300 (#889187)

 

Приветствую всех.
Александр пишет:

А может, никто и не выключал?
Если SID пустой, значит, браузер принял cookie.
Сделайте вывод session_name() и session_id() и массива $_COOKIE, чтобы можно
было лучше понять ситуацию.

Кстати, если в php.ini установлено
session.use_trans_sid = 1
то помещать SID в ссылки нет необходимости, т.к. для ссылок, форм и фреймов php
будет самостоятельно модифицировать ссылки нужным образом.

Успехов. Анатолий.

Ответить   "i_chay" Wed, 29 Jul 2009 09:44:49 +0500 (#889482)