PHP 5 для начинающих |
Страница 129 из 813 В сценарии нет ничего сложного. Когда страница cookies.php вызывается пользователем впервые, как cookie-переменные, так и переменные формы пусты. Если выбрать какие-либо параметры в списках и нажать кнопку Получить cookie, то переменным формы будут присвоены значения, которые тут же будут выведены на экран. Это говорит о том, что переменные формы type_sel и size_sel получают значения, соответствующие пользовательскому выбору при первом посещении страницы. Следует отметить, что обе cookie-переменные все равно пусты. Они присутствуют, но для того чтобы вывести их, необходимо обновить страницу. Сеансом можно назвать последовательность взаимосвязанных действий между одним клиентом и Web-сервером, которая имеет место в течение длительного периода времени. Это может быть последовательность транзакций, которые осуществляются пользователем во время обновления портфеля ценных бумаг, или множество запросов, которые выполняются при проверке почтового ящика через Web-интерфейс e-mail-службы. Сеанс может состоять из нескольких запросов к одному сценарию или из запросов к различным ресурсам на одном и том же Web-сайте. В частности, когда возникает необходимость обрабатывать секретные или объемные данные, имеет смысл переслать их однажды и сохранить на сервере, а не хранить на клиентской машине и пересылать каждый раз между клиентом и сервером. Гораздо практичнее хранить данные на сервере, а клиенту выдать "ключ", позволяющий ему уникально идентифицировать себя на этом сервере и, следовательно, использовать любые связанные с этим ключом серверные данные. Такой ключ называется идентификатором сеанса (session identifier); он однозначно связывает клиента с сеансом и, следовательно, с его данными. В PHP идентификатор сеанса называется SID (Session ID) и представляет собой специальную переменную, которая определена как регистрационный номер конкретного сеанса. В этой главе уже было показано, как установить сеанс, используя cookie для сохранения данных на клиентской машине. Такой метод управления сеансами небезопасен, однако PHP имеет встроенную поддержку управления сеансами, поэтому разбираться в точных деталях реализации нет необходимости. PHP создает SID каждый раз, когда в сценарии вызывается функция session_start(), а также по умолчанию, когда используются некоторые другие связанные с сеансами функции, такие как session_register(). Значение SID хранится в глобальной переменной с именем PHPSESSID. SID можно рассматривать как идентификационный номер в счете за электроэнергию:клиенту выдается номер, под которым данные клиента хранятся в энергетической компании. В дальнейшем клиенту больше не нужно сообщать компании все свои данные каждый раз, когда ему требуется уточнить сумму выставленного счета. SID автоматически создается и передается между клиентом и сервером каждый раз, когда пользователь щелкает по ссылке или на кнопке формы. В момент инициализации PHP-сеанса сервер назначает данному сеансу идентификатор или SID. Любые переменные, зарегистрированные как переменные сеанса (как это делается, будет показано далее), хранятся на сервере в очень похожем на cookie файле. Именем данного файла, как правило, является значение SID. Все, что требуется сделать клиенту, чтобы получить доступ к своей информации на сервере, ------ включить SID в свой запрос к данному серверу. Для этого можно использовать скрытое поле формы, строку запроса или cookie-файл, если это определено SID в HTTP-запросе. |