Одним из наиболее полезных применений cookie-наборов является возможность создания сеансов, которые в действительности позволяют преодолеть отсутствие поддержки состояния протокола HTTP. При работе с сеансами в РНР есть возможность сохранять переменные (включая массивы и классы) между запусками сценариев и вызывать их позднее. Для функционирования такой системы Web-сервер должен иметь возможность отличать один браузер от другого, и в этом заключается роль cookie-наборов.
Теперь, когда мы познакомились с реализацией cookie-наборов, посмотрим, как применить эти знания для создания cookie-наборов, используемых внутри сценариев. Наиболее очевидным методом установки cookie-набора в PHP-коде является создание заголовка Set-Cookie с помощью PHP-функции header ()
Как уже говорилось, существует несколько методов использования cookie-наборов в PHP-сценариях. В этом разделе рассматриваются два метода (использование HTML и HTTP). Установка cookie-наборов на клиентской стороне с помощью, например JavaScript, рассматриваться не будет, cookie-наборы посылаются клиенту путем спецификации одного или нескольких заголовков Set-Cookie, когда браузер запрашивает файл у Web-сервера во время выполнения запроса GET или POST. Синтаксис HTTP-заголовка Set-Cookie имеет следующий вид: Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN NAME; secure
Несмотря на то что HTTP — очень полезный протокол, он известен в компьютерном мире как протокол, не поддерживающий состояния. Если это утверждение пока вам не понятно, не огорчайтесь. В отличие от ваших любимых программ, таких как текстовые процессоры, РНР не имеет средств для запоминания последнего запроса.
Прежде чем рассматривать строки кода, обсудим концепцию создания многоцелевого сценария для проверки форм. Перед тем как создавать сценарий, определим цели: • Универсальность при проверке и обработке любых данных формы. • Разделение кода для проверки и кода для представления формы. • Простота использования при обработке любых типов HTML-форм.