Що таке cookies
Cookies (а також сесії) використовуються всюди: в інтернет-магазинах, на форумах і т.д. Cookies потрібні в тих випадках, коли потрібно зберігати певну інформацію на протязі декількох сторінок. Або протягом всієї сесії.
Перед вивченням уроку «Що таке cookies?», Я рекомендую скачати исходник собі на комп'ютер!
Для початку поговоримо про куках, як, грубо кажучи, різновиди сесії.
визначення
Визначимо, що Cookies - це текстові рядки, що зберігаються на стороні клієнта, і містять пари «ім'я-значення», з якими пов'язаний URL, за яким браузер визначає, чи потрібно надсилати cookies на сервер.
Встановлювати дуже просто, всього лише єдиною функцією - setcookie
Синтаксис setcookie:
Name - ім'я встановлюваного cookie
Value - значення зберігається cookie з ім'ям name
Expire - час життя cookie
Path - шлях, по якому доступний cookie
Domain - домен, з якого доступний cookie
Secure - директива, що визначає, чи доступний cookie не по запросу HTPPS. За замовчуванням ця директива має значення 0, що означає можливість доступу до cookie за звичайним запитом HTTP.
Приклад використання cookies
Я оновив сторінку 12 разів і в cookie з ім'ям views записалося значення «12».

Далі ми просто перевіримо, як записаний cookie відображається в настройках браузера. Наприклад, в Google Chrome.
Ось ми побачили весь код в цілому, а зараз розберемо його зокрема. Давайте для початку прочитаємо його словесно.
Якщо існує така суперглобального змінна $ _COOKIE [ 'views'] з ім'ям 'views', то ми просто дамо її значення змінної $ views та преінкрементіруем її (++ $ views; тотожний Sviews = $ views +1;). Далі знову йде умова: якщо неможливо записати cookie в браузері клієнта, то вивести повідомлення, щоб він дозволив записувати cookies.
Кінець 1-го блоку
setcookie ( 'views', $ views) - php функція запису cookie в браузер клієнта. Де 'views' - це ім'я cookie, а $ views - це змінна, яка містить значення записується cookie.
Якщо ж $ _COOKIE [ 'views']) не існує, то замість операцій $ views = $ _COOKIE [ 'views']; ++ $ views; ми призначимо змінної $ views одиницю. $ Views = 1; А решта таке ж як і в першому блоці.
Кінець 2-го блоку
Якщо ж $ _COOKIE [ 'views']) не існує, то замість операцій $ views = $ _COOKIE [ 'views']; ++ $ views; ми призначимо змінної $ views одиницю. $ Views = 1; А решта таке ж як і в першому блоці.
Час життя cookies
Якщо ми хочемо, щоб значення cookie зберігалося після того, як користувач закриє сесію, то нам потрібно встановити третій параметр функції setcookie ().
Встановити можна його декількома способами. Всього їх два, може, хто більше знає, але я використовую саме ці два. Перший - це ставити термін життя за допомогою вбудованої php функції time (), другий - вдосконалений варіант mktime ().
time () дозволяє переводити поточний час в секунди з початку епохи, це десь в 1975 році почалося.
Давайте тепер трохи видозмінимо наш найперший код, тобто продовжимо життя нашої cookie на день вперед.
видалення cookie
захист cookie
Нижче наведено список способів захисту cookies, які бажано застосовувати комплексно.
Наприклад, можна відкривати доступ тільки з певного каталогу і сторінки
Список доменів, які мають доступ до cookies
Доступ лише з певного каталогу і сторінки
Суть цього способу полягає в тому, що тільки з певної сторінки на сайті можна отримати доступ до cookie. (Разом з обмеженням під домен дає гідний захист. Це ще без шифрування даних.)
Розглянемо цей спосіб на прикладі. У кореневому каталозі сайту створимо будь-який каталог. Я, наприклад, створив каталог під ім'ям web і закинув раніше створений нами файл index.php, код якого зображений на самому початку нашої статті, але тільки з однією зміною. Я змінив назву старого cookie на viewsweb. Тобто новий cookie буде мати вигляд $ _COOKIE [ 'viewsweb'];
Тільки тепер в новому файлі index.php. що знаходиться в директорії web замість:
Потрібно буде переписати на це:
А тепер для наочності створимо ще один файл test.php в корені сайту з таким ось кодом:
Приклад в картинках
Доступ через домен
Практично те ж саме, що і в прикладі вище, тільки setcookie матиме такий вигляд:
При такому обмеженні домен може приймати форми mysessionsandcookies.gromitsu або
your.sessionsandcookies.gromitsu.
шифрування даних
На цю частину нашого чудового уроку можна написати окрему статтю. Так що тут ми просто пробіжимося галопом по Європах. Дивимося код:
висновок
Думаю, я багато описав, що стосується cookies, природно для новачка в цій справі. І як завжди, головне завдання програміста, це добре захистити написаний ним сценарій (скрипт). І цьому захисті можна присвятити цілу статтю.
Якщо ви вже добралися до цього місця, то ви розібралися з основними принципами роботи з cookies, і можете вже застосовувати їх на практиці.
Редакція: Ріг Віктор і Андрій Бернацький. Команда webformyself.
"Кіберсант-вебмастер" - найповніший курс по сайтобудування в рунеті!
Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

Хочете дізнатися, що необхідно для створення сайту?
Хвалу уроку віддають явно не «новачки»! Я не кажу, що урок поганий, просто він звернений до знаючих людей, розуміючим термінологію. Для нас, новачків, потрібно розписувати «покрокові» дії.
Візьмемо, наприклад, перший блок: «Якщо існує така суперглобального змінна $ _COOKIE [ 'views'] з ім'ям 'views', то ми просто дамо її значення змінної $ views та преінкрементіруем її (++ $ views; тотожний Sviews = $ views +1;). Далі знову йде умова: якщо неможливо записати cookie в браузері клієнта, то вивести повідомлення, щоб він дозволив записувати cookies ».
Ви вважаєте, що все це зрозуміло новачкові? Тут з доступних для розуміння новачка слів - лише службові: якщо, її, така, з, то, щоб ...
Не треба, панове фахівці, тримати «пальці віялом». У своїй професії ми теж не з останніх.
З повагою до Вашого інтелекту - Валентина
Валентина. Кожен урок має свою ступінь складності. Якщо ви взагалі не розумієте, що таке PHP, то даний урок дивитися вам рано. Розберіться для початку з основними поняттями.
Дякую за урок, я ще з першими розбираюся і вникаю.
Так, Валентина, права. Текст ні для яких не новачки і навіть не для чайників. Я ось з вищою освітою (не куплена як зараз), але освіту щось гуманітарне. І те, що Ви написали - для мене просто абракадабра. Якщо Ви і справді хочете навчити того, хто нічого не розуміє в цих термінах - то пишіть людською мовою. С ув. Ніна