Ошибка: Failed to parse the Currency Converter XML document.
$36 023.24


Ошибка: Failed to parse the Currency Converter XML document.
$1 302.73


Ошибка: Failed to parse the Currency Converter XML document.
$1 621.01


Работа с Cookies на PHP

Введение:

Откуда возник термин «cookie» никто достоверно не знает, хотя считается, что во времена зарождения Unix-систем где-то использовалось словосочетание Magic Cookies. Имелись в виду «квитанции» (token, ticket), которыми обменивались программы.

Cookie является решением одной из наследственных проблем HTTP протокола (HyperText Transfer Protocol). Эта проблема заключается в непостоянстве соединения между клиентом и сервером, как при FTP или Telnet сессии, т.е. для каждого документа (или файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение cookie в HTTP протокол дало частичное решение этой проблемы. Иначе говоря, транзакция завершается после того, как браузер сделал запрос, а сервер выдал соответствующий ответ. Сразу после этого сервер «забывает» о пользователе и каждый следующий запрос того же пользователя считает новым пользователем.


Используя cookie, можно эмулировать сессию по HTTP протоколу. Коротко принцип эмуляции сессии таков: на первом запросе выдается соотвествующее значение cookie, а при каждом последующем запросе это значение читается из переменной окружения HTTP_COOKIE и соответствующим образом обрабатывается.


Простой пример: есть форма, где пользователю предлагается указать свое имя, из нее вызывается скрипт, прописывающий значение cookie в браузер пользователя. При каждом последующем заходе на основе анализа значения cookie из браузера пользователя на странице появляется либо именное приветствие (если есть установленное значение cookie), либо первоначальная форма с запросом имени пользователя (если значение cookie не установлено).

Итак,приступим к практике:

1.Задание cookie с помощью Php

Для задания этой функции в языке php есть оператор:
setcookie() . Самое приятное,сто функция setcookie() воспринимает до шести аргументов, в зависимости от того, как вы собираетесь управлять значениями cookie и кто будет считывать ее значения.

Простейший способ установить cookie таков:

setcookie(«name», «bret»);

Затем, для каждой последующей страницы на Вашем сайте, просматриваемой в течение данной сессии (пока пользователь не покинет сайт) переменная $name будет иметь значение «bret» и его можно легко прочитать средствами PHP. Этот тип cookie известен как cookie-сессия, поскольку значение сохраняется в течение пользовательской сессии.

Если Вы хотите, чтобы значение cookie запоминалось браузером после того, как пользователь закончит сессию, Вы должны передать функции setcookie() третий параметр — дату истечения срока действия cookie. Поскольку PHP сформировался в основном в среде Unix, Вы должны представить время истечения срока действия cookie как число секунд, прошедших с 1 января 1970 г. Если Вы имеете опыт программирования для Unix, это не покажется Вам удивительным. Но, если Вы программировали только в среде Windows или Macintosh, Вы, может быть, удивитесь, что за чокнутый народ эти Unix-оиды.

Но не бойтесь. PHP имеет очень удобную функцию, mktime() . Вы указываете ей в качестве параметров (в указанном порядке) час, минуту, секунду, месяц, день и год, задающие тот момент времени, который Вы хотите представить в воспринимаемом UNIX формате, и mktime() возвращает Вам число секунд, прошедших с 1 января 1970 г. до указанного момента времени. Например, если Вы хотите, чтобы срок действия cookie истек 1 января 2000 г., Вы записываете:

Если Вы хотите изменить значение cookie на новое, Вы можете просто переписать его (ее?) значение. Таким образом, даже если браузер уже посылал значение cookie серверу на одной из предыдущих страниц, вполне возможно сообщить серверу, что в действительности Вас зовут «jeff.»

Обратите внимание на то, что при этом не меняется значение переменной $name. Оно устанавливается при загрузке страницы. Если Вы хотите чтобы значение переменной изменялось синхронно с изменением значения cookie, Вы должны изменить код следующим образом:

Следующие два параметра функции setcookie() позволяют Вам задать путь и имя домена того, кто может прочитать значение Вашего cookie. По умолчанию только страницы, расположенные в том же каталоге или ниже в структуре подкаталогов того сервера, который установил cookie, могут прочитать его (ее??) значение. Это делается из соображений безопасности. Однако, если у Вашего сервера два доменных имени: «www.domain.com» и «other.domain.com», и Ваш экаунт позволяет Вам обслуживать страницы из каталога ~/myhome, Вы должны вызывать функцию setcookie() следующим образом:

Последний параметр функции setcookie() , который мы никогда не использовали, требует, чтобы значение cookie передавалось только на те Web-сервера, которые испольуют безопасный протокол соединения, такой как SSL. Если Вам это нужно, то задайте для шестого параметра значение 1.

Удалить cookie тоже очень просто, достаточно передать функции setcookie() имя cookie и PHP сделает все остальное:

В заключение нужно сделать еще одно замечание, касающееся использования cookie. В силу того, как организована обработка cookies в протоколе HTTP, необходимо установить значения всех cookie до вывода какого-либо текста. Если сделать наоборот, PHP выдаст Вам предупреждение и значение cookie не будет послано. Вот так правильно:

А так — нет:

2. Задание cookie с помощью JavaScript

Можно задавать значение cookie, используя язык JavaScript. Единственный недостаток этого способа заключается в том, что не все браузеры его поддерживают. Ниже приведены примеры функций JavaScript, написанные Алексеем Александровым для скрипта «Органайзер».

Пример. Функция установки значения cookie
// name — имя cookie// value — значение cookie// [expires] — дата окончания действия
cookie (по умолчанию — до конца сессии)// [path] — путь, для которого cookie действительно
(по умолчанию — документ, в котором значение было установлено)// [domain] — домен, для которого cookie действительно
(по умолчанию — домен, в котором значение было установлено)// [secure] — логическое значение, показывающее требуется ли
защищенная передача значения cookiefunction setCookie(name, value, expires, path, domain, secure) {var curCookie = name + «=» + escape(value) +((expires) ? «; expires=» + expires.toGMTString() : «») +((path) ? «; path=» + path : «») +((domain) ? «; domain=» + domain : «») +((secure) ? «; secure» : «»)if (!caution || (name + «=» + escape(value)).length

 

Интересное

Защита зрения от компьютера
Технический прогресс принес не только пользу человечеству, но еще и ощутимый вред здоровью людей, которые пользуются дарами цивилизации. О чем это я? Ну, конечно же, речь здесь идет о компьютерах...
Подробнее...
Несколько простых способов...
Задумывались ли вы когда-то о том, может ли ваш компьютер быть более быстрым? Мы рассмотрим несколько простых способов увеличить скорость работы, получив максимум производительности от своего...
Подробнее...
Некоторые секреты IP-протокола
Пожалуй, в последние годы ни о чем так много не писали в области сетевых технологий, как о протоколе IP. Однако, несмотря на такое внимание к данной теме, до сих пор почти ничего не сказано о...
Подробнее...
Cинхронизация времени...
ЗадачаОрганизовать синхронизацию времени контроллеров домена с внешними источниками.Исходные данные.Все серверы W2K3 Схема подключения к внешней сети Internet-Router-ISA-DC.Router управляется...
Подробнее...
Краткий HELP по реестру...
Как известно, реестр windows имеет много назначений. Там хранятся текущие настройки системы и установленных программ, информация об установленном железе, ссылки на объекты, исполняемые на старте...
Подробнее...
Продвижение сайтов в...
Описание: Продвижение сайтов в поисковых системах и интернет-маркетинг поисковых машин очень актуальны в современном бизнесе для достижения коммерческого успеха. Эта книга — прежде всего...
Подробнее...
Что такое комплексное...
Услуги по продвижению сайтов в сети Интернет стали в последние годы чрезвычайно популярными. Аудитория Интернета растет быстрыми темпами, многие фирмы обзаводятся сайтами и хотят привлекать на них...
Подробнее...
Обновление контроллеров...
АннотацияВ статье рассматриваются обновления контроллеров домена Windows 2000 до Windows Server 2003 и добавления контроллеров домена под управлением Windows Server 2003 в домен Windows...
Подробнее...
Выпуск iPad Mini – роковая...
Первые слухи о намерениях корпорации Apple выпустить новый компактный планшет, цена которого будет составлять не более $299, по всей видимости, становятся вполне настойчивыми, чтобы применить к...
Подробнее...
Не выбрасывайте вещи в...
Случалось ли у вас такое, что открывая платяной шкаф, вы с ужасом понимали, что новые вещи положить уже некуда? Знакомая ситуация, не правда ли?Находясь в подобной ситуации, я как-то раз решила...
Подробнее...