Лістинг 5.16. book.htm
<HTML><HEAD><TITLE>The Guest Book by Fedorenko</TITLE></HEAD>
<BODY><CENTER>
<H1>Here is the guest book </H1><HR>
</BODY></HTML>
Тіньові посилки (cookies).Створення і читання тіньової посилки (англійське cookie, на сучасному новоязе іменована також "кука", "кукис") стало популярним в Інтернеті - принаймні, серед Web-программистов. Під цим ім'ям мається на увазі використання протоколу HTTP для зберігання інформації, отриманої від сервера, на машині клієнта і обмін цією інформацією між комп'ютерами і програмами-броузерами непомітно від користувача, тобто в тіньовому режимі.
Тіньові посилки і улюблені і ненавидимы. Деякі користувачі протестують проти здобуття і обробки тіньових посилок на своїх комп'ютерах і забороняють цей режим для своїх броузеров. Тому наведений нижче приклад не активізує їх до тих пір, поки користувач сам не введе дані для роботи тіньової посилки. Цей сценарій зберігає дані в хеш-кодуванні, тому його легко підстроїти для використання в інших сценаріях.
Використання тіньових посилок.Багато користувачів терпіти не можуть, коли на їх комп'ютерах зберігаються мегабайти інформації подібного роду. Мені доводилося бачити Web-сторінку, на якій було більше 70 тіньових посилок. Це не настільки нешкідливо як здається. У більшості броузеров верхня межа тіньових посилок — число порядка 200. Оскільки тіньові посилки дозволяють відстежувати пересування користувачів по розділах, а також зберігати налаштування користувача, то теплі відчуття до тіньових посилок інколи все ж переважають над роздратуванням.
Сценарій, приведений в лістингу 6-17, дозволяє відвідувачеві змінити сторінку так, щоб при наступних візитах вона б вітала його по імені, а в день народження ще і поздоровляла б. Цей сценарій сповна коректний — він не встановлює жодних тіньових посилок до тих пір, поки користувач сам не надасть або не відновить необхідну інформацію. Сценарій перевіряє дані, отримані від користувача аби переконатися, що день народження введений у форматі месяц/день (mm/dd), містить лише цифри, а єдиний символ / знаходиться в потрібному місці, і видаляє теги HTML, які він міг ввести в рядок для імені. Коли користувач вперше відкриває сценарій hellocookie.pl, він може набудувати цю сторінку, ввівши ім'я і цату народження у форматі mm/dd. Після натиснення на кнопку підтвердження сценарій записує інформацію під ім'ям greetings, зберігаючи ім'я і день народження, на комп'ютері клієнта.
Коли користувач знову відкриває hellocookie.pl, сценарій перевіряє, чи немає у відвідувача тіньової посилки greetings, і, якщо вона є, виводить вітання, включаючи при необхідності поздоровлення з днем народження. От і все.
Як записати тіньову посилку.Записати тіньову посилку за допомогою CGI.pm нескладно. У нашому прикладі вона називатиметься "greetings" і зберігати інформацію в хэше %greetings, знищуючи її після закінчення року:
$з = new CGI:
$greetingcookie = $co->cookie(
-name=>'greetings'
-value=>\%greetings
-expires=>'+365d' );
print $co->header(-cookie=>$greetingcookie);
Відмітьте, що для створення тіньової посилки ви передаєте її як іменований параметр CGI-методу header.
Як прочитати тіньову посилку.Для читання тіньової посилки використовується звичайний CGI-метод, одержуючий як параметр ім'я посилки. Після цієї операції можна використовувати дані хэша %greetings:
$з = new CGI;
%greetings = $co->cookie('greeting');
print $greetings{'name'}
Ось і вся робота з тіньовими посилками. Але майте на увазі, що багато користувачів не бажають, аби програми зберігали які б то не було дані на їх машинах.
Дата добавления: 2016-04-02; просмотров: 498;