Компьютерная документация и статьи о Windows. Оптимизация Windows.

Поиск

  Здравствуйте  [ Новый пользователь ] Главная  .  Статьи по темам  .  Скачать документацию  .  Личный кабинет  .  Добавить статью  .  Toп 10  .  Карта сайта  

  Навигация

    Главная
    Темы новостей
    Топ 10
    Архив новостей
    Рассылка новостей
    Каталог файлов
    Карта сайта
    Каталог ссылок
    Добавить статью
   Личный кабинет
    Пользователи
    Поиск
    Написать нам
    Тест скорости
    Конструктор
    Интересные книги
    Форум
    Это интересно
    RSS канал
    Аксессуары для
         телефонов


  Наши темы
Windows 7
Windows Vista
Windows XP
Настройка Windows
Реестр Windows
Восстановление системы
MS-DOS
BIOS
Интернет
Microsoft Office
Сетевые настройки
Обработка видео
Вебмастеру
Разное о Windows
Обзор софта

  Рекомендуем

INAttack.RU :: Архив документации для хакера

СЕТЕВАЯ ПЕРЕГРУЗКА

Бесплатный каталог драйверов и
прошивок


  Подписка на рассылку
Ваш E-mail:

Тип подписки:

Формат подписки:


Реклама в интернет:::Все Кулички

Введение в Cookies

Разместил 12/12/2007 от Vivaldis

Вебмастеру

cookie является решением одной из наследственных проблем http спецификации. Эта проблема заключается в непостоянстве соединения между клиентом и сервером, как при ftp или telnet сессии, т.е. для каждого документа (или файла) при передаче по http протоколу посылается отдельный запрос. Включение cookie в http протокол дало частичное решение этой проблемы.

cookie это небольшая порция информации, которую сервер передает клиенту. Клиент (броузер) будет хранить эту информацию и передавать ее серверу с каждым запросом как часть http заголовка. Некоторые cookie хранятся только в течение одной сессии, они удаляются после закрытия броузера. Другие, установленные на некоторый период времени, записываются в файл. Обычно этот файл называется "cookie.txt".



Что можно делать с помощью cookie?

Сами по себе cookies не могут делать ничего, это только лишь некоторая информация. Однако, сервер может на содержащуюся в cookies информацию. Например, в случае авторизованного доступа к чему либо через www, в cookies сохраняется login и password в течение сессии, что позволяет не вводить их при запросе каждого запаролированного документа. Другой пример: cookies могут использоваться для построения персонализированных страниц. Чаще всего встречается такое - на некотором сервере Вас просят ввести свое имя, и каждый раз, когда Вы заходите на первую страницу этого сервера, Вам пишут что-то типа "hello, your_name!". На использовании cookies также часто строят функцию оформления заказа в онлайновых магазинах, в частности, в Амазоне, такая своеобразная виртуальная корзина покупателя, как в обычном реальном супермаркете.

Какие броузеры поддерживают механизм cookies?

Не все, конечно, однако самые популярные поддерживают. Я точно знаю, что netscape (начиная с самой первой версии), microsoft ie (трешка и четверка - точно, про предыдущие не знаю), mosaic

Установка cookie.

Как выставлять cookies клиенту зависит от того, как они будут использоваться в дальнейшем. Это можно делать как с помощью скриптов,так и с помощью meta-тагов html. Можно манипулировать временем жизни выставленных cookies и устанавливать место, в котором установки действительны. Общий формат установки таков: set-cookie: name=value; expires=date; domain=domain_name; path=path; secure

Установка cookie с помощью html.

Простейший способ выставить cookie - использовать соответствующий meta-таг в заголовке любого статического html документа. Это выглядит следующим образом: value; expires=date; domain=domain_name; path=path; secure">

Установка cookie с использованием perl/cgi.

Другой способ выставить cookie - с помощью серверного скрипта. На perl это будет выглядеть примерно следующим образом: перед тем как выдавать серверный ответ генерируется http заголовок print "content-type: text/htmln";
print "set-cookie: username=aaa13; expires=friday,31-dec-99 23:59:59 gmt; path=/win/internet/html/; domain=citforum.ru;nn";

Чтобы прочитать скриптом значение cookie, которое было установлено ранее, и соответствующим образом выполнить скрипт, используется переменная окружения http_cookie. На perl это будет выглядеть так:

$cookie = $env{´http_cookie´};

При использовании ssi для просмотра значения cookie можно применить директиву:

Установка нескольких cookie одновременно.

Как с помощью html, так и с помощью скриптов можно устанавливать несколько cookie разом:

html: value; expires=date; domain=domain_name; path=path; secure">value; expires=date; domain=domain_name; path=path; secure">

perl/cgi:

print "content-type: text/htmln";
print "set-cookie: name=value; expires=date; path=path;
domain=domain_name; securen";
print "set-cookie: name=value; expires=date; path=path;
domain=domain_name; securenn";

cookies в php

Рассмотрим простейший пример - установка на компьютере пользователя булки с информацией о том, был он на этой странице или нет. Это делается так:

setcookie ("visted","true");

После этого у вас на диске появляется c cookie с информацией о том, что эту страницу вы уже посещали. Как долго будет действовать cookie? Поскольку мы использовали только два параметра, а другие нужные параметры оставили без внимания, в них установились стандартные значения: действует до закрытия всех окошек браузера, в домене установившего булку скрипта, по незащищенному соединению. А если мы хотим посчитать сколько посещений произошло в течение года? Как установить эти значения? Воспользуемся полным синтаксисом setcookie:

int setcookie ( string name [, string value [, int expire
[, string path [, string domain [, int secure]]]]])

Как видите, мы можем указать не только имя cookie и значение, но также и время действия (expire - в секундах, прошедших с 1970-го года), путь (стандартное значение "/"), домен ("домен.установившего.куки.скрипта") и секьюрность (0), т.е. также и область действия cookie.

Существует ограничение по количеству cookie на домен (20 штук), поэтому на самом деле в cookie хранится массив, и мы можем в одной булке хранить имя пользователя и количество его заходов на страницу (просто используйте значение cookie как массив). Рассмотрим скрипт - счетчик посещения страницы пользователем.

if (!empty($http_cookie_vars["count"]))
{
$howmuch = $http_cookie_vars["count"];
} else
{
$howmuch = 0;
};
$howmuch++;
setcookie("count",$howmuch,time() + 3600);

print "Вы на этой странице $howmuch-й раз.";

?>

Как видите, для начала мы проверяем, есть ли уже на компьютере пользователя cookie с именем "count", и, если его нет, считаем, что пользователь был на странице 0 раз. Доступ к информации из cookie может быть получен двумя способами: во-первых, если в php.ini установлена настройка register_globals, автоматически создается переменная $count, во-вторых, добавляется значение в массив $http_cookie_vars. Более правильным является использование второго способа, т.к. php очень любит создавать переменные, и в этом случае мы просто не знаем - породилась ли эта переменная в результате передачи скрипту данных в query_string, через метод post или через cookie. Кроме того, в последних версиях php (4.2) функция register_globals по умолчанию отключена, так что остается вообще только один способ получить информацию.

Следующим шагом является прибавление к счетчику посещений единички. Логично - пользователь ведь зашел на страницу? Значит, увеличил количество посещений на единичку. Затем (до выдачи каких-либо надписей) мы должны установить cookie c новой информацией, действующий час. Чтобы получить время в секундах от 1970-го года, используется функция time(), к которой мы прибавляем искомое время (3600 секунд). Следует отметить, что время устанавливается в часовом поясе пользователя, так что запросто может оказаться, что время жизни cookie уже истекло. С этим надо бороться!

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

Внимание! cookies можно устанавливать только до какой бы то ни было выдачи текста! Проследите, чтобы до использования setcookie не было операторов print. Сообщения об ошибках тоже портят нам установку cookie. Вся проблема заключается в том, что информация о cookie относится к области заголовков, а то, что выдает print - нет.

Но мы должны не только уметь добавить cookie, но и удалить... Это делается все той же многострадальной функцией setcookie, только на этот раз мы вызываем ее с одним единственным параметром - именем cookie:

setcookie("count");

?>

Источники: http://cgid.al.ru http://webhowto.ru/


|
 
  Логин
Логин

Пароль

Не зарегистрировались? Вы можете сделать это, нажав здесь. Когда Вы зарегистрируетесь, Вы получите полный доступ ко всем разделам сайта.

  Связанные ссылки
· Больше про Вебмастеру
· Новость от Vivaldis


Самая читаемая статья: Вебмастеру:
Коды ошибки http веб-сервера


  Рейтинг статьи
Средняя оценка: 3
Ответов: 2


Пожалуйста, проголосуйте за эту статью:

Отлично
Очень хорошо
Хорошо
Нормально
Плохо



  опции

 Напечатать текущую страницу  Напечатать текущую страницу

 Отправить статью другу  Отправить статью другу


Яндекс цитирования Rambler's Top100 Рассылка 'Собрание документации по Windows , программное обеспечение' Content.Mail.Ru Maillist.ru: Компьютерная документация по настройке Windows
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
The Russian localization - project Rus-PhpNuke.com
Открытие страницы: 0.223 секунды и 20 запросов к базе данных