Значение cookie должно присваиваться перед отправкой каких-либо данных с сервера Apache. Дело в том, что значения cookie включаются в заголовки, предшествующие непосредственному содержимому запрашиваемого документа.
Для подобных случаев существует специальная конструкция — так называемый инициализатор, определяемый тегом <dock type="1nit">. Этот тег должен находиться сразу же после тега <1хр> в вашем документе, а внутри открываемого им блока могут находиться теги <setcookie>. Синтаксис открытия инициализатора:
<1хр> <dock type="init">
В открытом блоке значения cookie задаются командой следующего вида:
<setcook1e name="ww" уа1ие="значенле"
domain="домен" path="путь"
ехрires="срок_дейсвия" />
После закрытия блока инициализатора тегом </dock> значения cookie задаются, а данные, следующие за закрывающим тегом, передаются клиенту.
При записи cookie обязательны только атрибуты name и value. Присваивание пустого значения (атрибут value) приводит к удалению cookie.
Явное указание домена позволяет задать домен, в котором принимается значения cookie (например, www.thelinuxreview.com или .thelinuxreview.com для всех субдоменов). Атрибут путь задает путь URI, по которому хранится значение cookie (например, path="/app/").
Если атрибут expi res не задан, значение cookie действует на протяжении сеанса и автоматически становится недействительным при закрытии браузера. В противном случае величина атрибута либо определяет интервал в часах, в течение которого значение cookie остается действительным, либо количество секунд с 1970 года до момента истечения срока действия cookie. Если величина атрибута больше миллиона, предполагается вторая интерпретация.
В отличие от некоторых web-языков, документы LXP узнают обо всех значениях cookie в том же запросе, в котором они были заданы. Передача информации о cookie реализуется на уровне внутренней логики LXP, а включенные документы других типов (например, РНР) не будут знать о назначении cookie до поступления следующего запроса. Это связано с самой природой файлов cookie, хранимых на стороне клиента.
Примечание 1
Примечание 1
Инициализатор также является удобным для выполнения любой общей инициализации в документе, поскольку ни комментарии, ни символы новой строки в инициализаторе не передаются браузеру. В инициализаторе допускается включение внешних файлов LXP.