В книге вычитал что в том случае когда у клиента отключены cookie идентификатор сессии можно передавать через строку адреса. Автор приводит пример, который мне не понятен до конца, но он работает не правильно. Хотел бы попросить знающих людей прокоментировать смысл данного кода и указать в чем ошибка. Сам код выглядит так: PHP: <?php if(!session_is_registered('nCount')) { session_register('nCount'); $nCount = 1; } else { $nCount++; } ?> <p>Hello, you have seen this page <?php echo $nCount; ?> times.</p> <p>To continue, <a href=”somepage.php?<?php echo strip_tags(SID)?>”>click here (sompage.php?<?php echo strip_tags(SID)?>)</A></p> Первая загрузка проходит вроде как правильно и результат следущий: Hello, you have seen this page 1 times. To continue, click here (sompage.php?) но при клике по ссылке в адресной строке появляется строка http://localhost/test/”somepage.php?” и естественно это не тот результат который ожидался. Мне не совсем понятен момент strip_tags(SID) и в целом не понятно в чем ошибка. Подскажите пожалуйста что нужно переправить. Заранее благодарен.
Phantik Твоя книга безнадежно устарела. Правильный код для демонстрации передачи SID через URL: PHP: <?php //По-умолчанию ID сессии передается в cookie //Это надо отключить. ini_set('session.use_cookies',0); session_start(); //Инициализация сессий if(!isset($_SESSION['count'])) { $_SESSION['count'] = 1; } else { $_SESSION['count']++; } ?> Страница просмотрена: <?php echo $_SESSION['count']; ?> раз.<br> <a href="<?php echo $_SERVER['PHP_SELF'].'?PHPSESSID='.session_id();?>">Обновить</a>
Да в твоем примере все доходчиво и понятно, я более менее разобрался в этой области. Есть еще один нюанс, что строку ?PHPSESSID='.session_id() не нужно добавлять, т.к. PHP добавляет ее самостоятельно. Работать пример конечно будет но ID будет передаваться 2 раза Код (Text): http://localhost/test/somepage1.php?PHPSESSID=m42f0rhoo3na25qagijq20opi0&PHPSESSID=m42f0rhoo3na25qagijq20opi0