|
имеют как
досто-
инства, так и недостатки, и вскоре мы увидим, в чем же они заключаются.
Первый способ: хранить на сервере отдельную базу данных, в которой для каждого
пользователя по его IP-адресу можно было бы получить последние им же введенные
данные. В принципе, это решение довольно универсально, однако у него есть два
су-
щественных недостатка, которые сводят на нет все преимущества. Главный из них —
то, что большинство пользователей не имеют фиксированного (как говорят, стати-
ческого) IP-адреса — каждый раз при входе в Интернет он назначается им (провай-
дером) автоматически (сервер провайдера обычно имеет контроль над несколькими
десятками зарезервированных IP-адресов, доступных для пользователя, и выбирает
для него тот, который еще не занят кем-то еще). Таким образом, мы вряд ли
сможем
определить, кто на самом деле зашел в нашу гостевую книгу. Второй недостаток
мало
связан с первым — дело в том, что если ваших пользователей очень много, то до-
вольно проблематично в принципе иметь такую базу данных, ведь она занимает ме-
сто на диске, не говоря уж о издержках на поиск в ней.
Второй способ подразумевает использование Cookies. Cookie — это небольшая име-
нованная порция информации, которая хранится в каталоге браузера пользователя
(а
не на сервере, заметьте!), но которую сервер (а точнее, сценарий) волен в любой
мо-
мент изменить. Кстати, сценарий также получает все Cookies, которые сохранены
на
удаленном компьютере, при каждом своем запуске, так что он может в любой момент
Часть I. Основы Web-программирования 68
времени узнать, что же там у пользователя установлено. Самым удобным в Cookies
является то, что они могут храниться недели и годы до тех пор, пока их не
обновит
сервер или же пока не истечет срок их жизни (который тоже назначается сценарием
при создании Cookie). Таким образом, мы можем иметь Cookies, которые "живут"
всего несколько минут (или до того момента, пока не закроют браузер), а можем —
"долгожителей".
Не правда ли, последний способ представляет собой идеальное решение для нашей
проблемы? Действительно, теперь сцеанарию гостевой книги достаточно получить у
пользователя его данные, запомнить их в Cookies (как это сделать — см. ниже), а
затем работать, будто ничего и не произошло. Конечно, перед выводом HTML-
документа формы обязательно придется проставить значения value для некоторых
элементов (которые, ясно, извлечены из соответствующих Cookies).
Но не все так гладко. Конечно, и у этой схемы есть недостатки. Первый из них —
не все
браузеры поддерживают Cookies, а пользователи тех, которые поддерживают, иногда
имеют обыкновение отключать Cookies — якобы для большей безопасности (хотя
безо-
пасность тут совсем ни при чем, дело в самих этих пользователях). Второй
недостаток
заключается в том, что каждый браузер хранит свои Cookies отдельно. То есть
Cookies,
установленные при пользовании Internet Explorer, не будут "видны" при работе в
Netscape,
и наоборот.
Но, согласитесь, все же это почти не умаляет достоинств Cookies — в конце
концов,
обычно пользователи работают только в одном из перечисленных браузеров. Кстати,
все чаще в Internet Explorer. На момент написания этих строк указанный браузер
име-
ет в несколько раз большие возможности, чем Netscape (работая при этом, правда,
несколько медленнее). Что ж... Время покажет, кто из них выживет.
Но я несколько отклонился от темы. Как уже упоминалось, каждому Cookie
сопостав-
лено время его жизни, которое хранится вместе с ним. Кроме этого, имеется также
информация об имени сервера, установившего этот Cookie, и URL каталога, в кото-
ром находился сценарий-хозяин в момент инициализации (за некоторыми исключе-
ниями)
|
|