ПравилаРегистрацияВход
НАВИГАЦИЯ

Учим PHP

Модераторы: нет
Список форумов » Вэб-разработкаНа страницу  1, 2, 3 ... 20, 21, 22 ... 86, 87, 88 
АВТОРСООБЩЕНИЕ
prokazneg
Avatar
28 августа 2008, 20:16
вот еще дополнение...
Установка Cookie
Мы подошли к вопросу: как же сценарий может установить куки в браузере пользователя? Ведь он работает "на одном конце провода", а пользователь- на другом. Решение довольно логично: команда установки куки- это просто один из заголовков ответа, передаваемых сервером браузеру. То есть, перед тем как выводить Content-type, мы можем указать некоторые команды для установки куки. Выглядит такая команда следующим образом(разумеется, как и всякий заголовок записывается в одну строку):
Set-Cookie: name=value; expires=дата; domain=имя_хоста; path=путь; secure
prokazneg
Avatar
28 августа 2008, 20:16
Существует и другой подход активизировать cookie-при помощи HTML-тега <meta>. Соответственно, как только браузер увидит такой тег, он займется обработкой cookie. Формат тега следущий:
<meta
Http-equiv="Set-Cookie"
Content="name=value; expires=дата; domain=имя_хоста; path=путь; secure"
>
prokazneg
Avatar
28 августа 2008, 20:18
Мы можем видеть, что даже названия параметров в обоих способах одинаковы. Какой из них выбрать-решать вам: если все заголовки уже выведены к тому моменту, когда вам потребовалось установить cookie, используйте тег <meta>. В противном случае лучше взять на вооружение заголовки, т.к. они не видны пользователю, а чем пользователь меньше видит при просмотре исходного текста страницы в браузере-тем лучше нам, программистам.Возможно, Вы спросите: "что же, с точки зрения программиста хороший пользователь-слепой пользователь?" я дам вам ответ: Конешно же нет, такой пользователь хорош лишь для дизайнера, для программиста же желателен пользователь безрукий или хотя бы лишенный клавиатуры и мыши.И так, давайте я вам расскажу что означают параметры cookie.
#name
Вместо этой строки нужно задать имя, закрепленное за cookie. Имя должно быть URL-кодированным текстом, т.е. состоять только из алфавитно-цифровых символов. Впрочем, обычно имена для cookies выбираются именно так, чтобы их URL-кодированная форма совпадала с оригиналом.#value
Текст, который будет рассматриваться как значение cookie. Важно отметить, что этот текст (так же, как и строка названия cookie) должен быть URL-кодирован. Таким образом мы должны отметить неприятный факт, что придется писать еще и функцию URL-кодирования (которая, кстати, раза в два сложнее, чем функция для декодирования, т.к. требует дополнительного выделения памяти).
prokazneg
Avatar
28 августа 2008, 20:19
#expires
Необязательная пара expires=дата задает время жизни нашего cookie. Точнее, cookie самоуничтожается, как только наступит указанная дата. Например, если задать
expires=Sunday, 2-Feb-09 15:52:00 GMT

То "печенье" будет жить только до 2 февраля 2009 года. Кстати, вот вам и вторая неприятность: хорошо, если мы знаем наверняка время смерти cookie. А если нам нужно его вычислять на основе текущего времени(например, если мы хотим, чтобы cookie существовал 10 дней после его установки как в подавляющем большинстве случаев и происходит)? Придется использовать функцию, которая формировала бы календарную даст в указанном выше формате. Кстати если этот параметр не указан, то временем жизни будет считаться вся текущая сессия работы браузера, до того момента, как пользователь его закроет.
prokazneg
Avatar
28 августа 2008, 20:19
#domain
Параметр domain=имя_хоста задает имя хоста, с которого установили cookie. Ранее я уже говорил про этот параметр. Так вот, оказывается, его можно менять вручную, прописав здесь нужный адрес, и таким образом подарить cookie другому хосту. Только в том случае, если параметр не задан, имя хоста определяется браузером автоматически.#path
Параметр path=путь обычно описывает каталог (точнее url), в котором расположен сценарий, установивший cookie. Как мы видим, этот параметр также можно задать вручную, записав в него не только каталог, а вобще все, что угодно. Однако при этом следует помнить: указав хост, отличный от хоста сценария, или путь, отличный от url каталога (или родительского каталога) сценария, мы тем самым никогда больше не увидим наш cookie в этом сценарии.#secure
Этот параметр связан с защищенным протоколом передачи HTTPS. Если Вы не собираетесь писать сценарий для проведения банковских операций с кредитными карточками (или иные, требующие повышенной безопасности), вряд ли стоит обращать на него внимание.
prokazneg
Avatar
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
Avatar
28 августа 2008, 20:21
На сегодня все :) )
гость
Avatar
28 августа 2008, 20:22
Слушай тебе не кажется что тема немного не подходит
<=RapAlways/=>
Avatar
28 августа 2008, 20:27
Руслан ты не понял основной смысл статьи наверное.
prokazneg
Avatar
28 августа 2008, 22:08
vainah, без куков не зделаеш авторизацию и регистрацию вернее сделать то можно но работать не будет...
Список форумов » Вэб-разработкаНа страницу Пред. 1, 2, 3 ... 20, 21, 22 ... 86, 87, 88 След.
 
стр.  
Страница 21 из 88
Часовой пояс: GMT + 4
Мобильный портал, Profi © 2005-2016
Время генерации страницы: 0.057 сек
Общая загрузка процессора: 4%
SQL-запросов: 4
Rambler's Top100