Рассмотрим тестовый пример организации сеанса. Для его воспроизведения убедитесь, что в вашем браузере не отключена поддержка cookie, или установите директиву session.use_trans_sid = 1 в файле php.ini. Чтобы изменения в php.ini вступили в силу, необходимо перезапустить Web-сервер.
В рассматриваемом далее примере имеются две серверные страницы, каждая из которых вносит собственный вклад в формирование множества сеансовых переменных. Первая страница сначала создает две переменные, затем вторая страница добавляет еще одну переменную, и, наконец, все три переменные становятся доступными для двух страниц.
В листинге 3 приведен код, формирующий первую страницу (файл sl.php). Здесь создается сеанс и две сеансовые переменные — myname и myaddr. Однако сценарий пытается вывести значение переменной mylastname, которая еще не была создана. Поэтому на странице в браузере это значение не будет отображаться.
Листинг 3:
<?php
session_start(); // открытие сеанса
/* Создание переменных сеанса */
$_SESSION[‘myname’]="Вадим";
$_SESSION[‘myaddr’]="Санкт-Петербург";
?>
<html>
<h2 Тестирование сеансов</h2>
<b>Страница 1 </b><br>
<а href=s2.php>Перейти на страницу 2</а>
</html>
<?php
/* Вывод переменной сеанса */
echo "<br>";
echo "Фамилия: {$_SESSION['mylastname']}";
'>
В результате щелчка на ссылке будет загружена вторая страница (файл s2.php), сформированная кодом листинга 4. Здесь создается только одна переменная mylastname, которой еще не было при загрузке первой страницы, и выводятся значения всех трех переменных текущего сеанса. Таким образом, одна переменная была создана на второй странице, а две другие — переданы ей из первой. Если на данной странице щелкнуть по ссылке, произойдет возвращение к первой странице, на которой теперь будут доступны все переменные сеанса. Поэтому значение переменной mylastname отобразится.
Листинг 4:
<?php
session_start();// подключение к сеансу
/* Создание переменной сеанса */
$_SESSION[‘mylastname’]="Дунаев";
?>
<html>
<h2>Тестирование сеансов</h2>
<b>Страница 2</b><br>
<а htef=s1.php>Перейти на страницу 1</а>
</html>
<?php
/* Вывод переменных сеанса */
echo "<br>";
echo "Имя: {$_SESSION[‘myname’]} <br>";
echo "Фамилия: {$_SESSION[‘mylastname’]}<br>";
echo "Адрес: {$_SESSION[‘myaddr’]}";
?>