Сессии (возможно только в РНР версий 4.0 и выше)
Как уже говорилось в Главе 8, передача информации между страницами возможна с помощью механизма работы с сессиями. Смысл его в том, что значения определенных переменных сохраняются в файле в папке временных файлов сервера, а посетителю отправляется в cookie уникальный идентификатор этого файла (или, если браузер посетителя cookie не принимает, идентификатор присоединяется ко всем ссылкам на сайте, ведущим на другие его страницы).
Впоследствии при получении от посетителя идентификатора сессии (имя cookie, содержащего его, жестко определяется в настройках web-сервера) в том случае, если в папке временных файлов существует соответствующий этому идентификатору файл, этот файл считывается и значения всех переменных, указанные в нем, передаются сценариям на страницах сайта.
Открыв сессию командой session_start () и зарегистрировав для сессии нужные переменные командой session_register (), можно в сценариях на других страницах сайта (после вызова той же команды session_start ()) работать с этими переменными, как если бы они были определены и установлены в этих же самых сценариях. (Подробнее о данных командах и особенностях их использования в зависимости от настроек файла php.ini читайте в Описании РНР.)
Кроме того, все эти переменные доступны как элементы массивов $HTTP_SESSION_VARS и (в РНР 4.1) $_SESSION (использовать эти массивы предпочтительнее, так как при этом отсутствует риск передачи значений переменных сценарию-обработчику путем указания их значений в адресной строке при неоткрытой сессии).
Подробнее о сессиях читайте в Главе 8.
Если в php.ini установлен в on параметр session.auto_start, то открывать сессию для ее использования не обязательно – достаточно лишь зарегистрировать нужные переменные командой sessionregister, чтобы они сохранялись в качестве сессионных.