Вэб-разработка
Учим PHP

prokazneg
28 августа 2008, 20:16

вот еще дополнение...
Установка Cookie
Мы подошли к вопросу: как же сценарий может установить куки в браузере пользователя? Ведь он работает "на одном конце провода", а пользователь- на другом. Решение довольно логично: команда установки куки- это просто один из заголовков ответа, передаваемых сервером браузеру. То есть, перед тем как выводить Content-type, мы можем указать некоторые команды для установки куки. Выглядит такая команда следующим образом(разумеется, как и всякий заголовок записывается в одну строку):
Set-Cookie: name=value; expires=дата; domain=имя_хоста; path=путь; secure
-------
prokazneg
28 августа 2008, 20:16

Существует и другой подход активизировать cookie-при помощи HTML-тега <meta>. Соответственно, как только браузер увидит такой тег, он займется обработкой cookie. Формат тега следущий:
<meta
Http-equiv="Set-Cookie"
Content="name=value; expires=дата; domain=имя_хоста; path=путь; secure"
>
-------
prokazneg
28 августа 2008, 20:18

Мы можем видеть, что даже названия параметров в обоих способах одинаковы. Какой из них выбрать-решать вам: если все заголовки уже выведены к тому моменту, когда вам потребовалось установить cookie, используйте тег <meta>. В противном случае лучше взять на вооружение заголовки, т.к. они не видны пользователю, а чем пользователь меньше видит при просмотре исходного текста страницы в браузере-тем лучше нам, программистам.Возможно, Вы спросите: "что же, с точки зрения программиста хороший пользователь-слепой пользователь?" я дам вам ответ: Конешно же нет, такой пользователь хорош лишь для дизайнера, для программиста же желателен пользователь безрукий или хотя бы лишенный клавиатуры и мыши.И так, давайте я вам расскажу что означают параметры cookie.
#name
Вместо этой строки нужно задать имя, закрепленное за cookie. Имя должно быть URL-кодированным текстом, т.е. состоять только из алфавитно-цифровых символов. Впрочем, обычно имена для cookies выбираются именно так, чтобы их URL-кодированная форма совпадала с оригиналом.#value
Текст, который будет рассматриваться как значение cookie. Важно отметить, что этот текст (так же, как и строка названия cookie) должен быть URL-кодирован. Таким образом мы должны отметить неприятный факт, что придется писать еще и функцию URL-кодирования (которая, кстати, раза в два сложнее, чем функция для декодирования, т.к. требует дополнительного выделения памяти).
-------
prokazneg
28 августа 2008, 20:19

#expires
Необязательная пара expires=дата задает время жизни нашего cookie. Точнее, cookie самоуничтожается, как только наступит указанная дата. Например, если задать
expires=Sunday, 2-Feb-09 15:52:00 GMT

То "печенье" будет жить только до 2 февраля 2009 года. Кстати, вот вам и вторая неприятность: хорошо, если мы знаем наверняка время смерти cookie. А если нам нужно его вычислять на основе текущего времени(например, если мы хотим, чтобы cookie существовал 10 дней после его установки как в подавляющем большинстве случаев и происходит)? Придется использовать функцию, которая формировала бы календарную даст в указанном выше формате. Кстати если этот параметр не указан, то временем жизни будет считаться вся текущая сессия работы браузера, до того момента, как пользователь его закроет.
-------
prokazneg
28 августа 2008, 20:19

#domain
Параметр domain=имя_хоста задает имя хоста, с которого установили cookie. Ранее я уже говорил про этот параметр. Так вот, оказывается, его можно менять вручную, прописав здесь нужный адрес, и таким образом подарить cookie другому хосту. Только в том случае, если параметр не задан, имя хоста определяется браузером автоматически.#path
Параметр path=путь обычно описывает каталог (точнее url), в котором расположен сценарий, установивший cookie. Как мы видим, этот параметр также можно задать вручную, записав в него не только каталог, а вобще все, что угодно. Однако при этом следует помнить: указав хост, отличный от хоста сценария, или путь, отличный от url каталога (или родительского каталога) сценария, мы тем самым никогда больше не увидим наш cookie в этом сценарии.#secure
Этот параметр связан с защищенным протоколом передачи HTTPS. Если Вы не собираетесь писать сценарий для проведения банковских операций с кредитными карточками (или иные, требующие повышенной безопасности), вряд ли стоит обращать на него внимание.
-------
prokazneg
28 августа 2008, 20:20

После запуска сценария, выводящего соответствующий заголовок (или тег <meta>), у пользователя появится cookie с именем name и значением value. Еще раз напоминаю: значения всех параметров cookie должны быть url-кодированны, в противном случае возможны неожиданности.Получение cookies из браузера:
Получить cookies для сценария несколько проще: все они хранятся в переменой окружения HTTP_COOKIE в таком же формате, как и QUERY_STRING, только вместо символа & используется ;. Например, если мы установили два cookies: cookie1=value1, cookie2=value2, то в переменной окружения HTTP_COOKIE будет следущее:
cookie1=value1;cookie2=value2

Сценарий должен разобрать эту строку, распаковать её и затем работать по своему усмотрению.
-------
prokazneg
28 августа 2008, 20:21

На сегодня все :) )
-------
гость
28 августа 2008, 20:22

Слушай тебе не кажется что тема немного не подходит
-------
<=RapAlways/=>
28 августа 2008, 20:27

Руслан ты не понял основной смысл статьи наверное.
-------
prokazneg
28 августа 2008, 22:08

vainah, без куков не зделаеш авторизацию и регистрацию вернее сделать то можно но работать не будет...
-------

Ответить на тему

стр. Пред. 1,2,3 ... 20,21,22 ... 87,88,89 След.

стр.  

Вэб-разработка
Список форумов
На главную

Последние темы

Регистрация
Вход

0.031 сек
SQL: 4