Какво е бисквитка?
Бисквитката е малък файл с максимален размер 4KB, който уеб сървърът съхранява на клиентския компютър.
След като бисквитката е зададена, всички следващи заявки за страница връщат името и стойността на бисквитката.
Бисквитката може да се чете само от домейна, от който е издадена. Например, набор от бисквитки, използващ домейна www.guru99.com, не може да бъде прочетен от домейна career.guru99.com.
Повечето уебсайтове в интернет показват елементи от други домейни, като например реклама. Домените, обслужващи тези елементи, също могат да задават свои собствени бисквитки. Те са известни като бисквитки на трети страни.
Бисквитка, създадена от потребител, може да бъде видима само за тях. Други потребители не могат да видят стойността му.
Повечето уеб браузъри имат опции за деактивиране на бисквитки, бисквитки на трети страни или и двете.
Ако случаят е такъв, PHP реагира, като предаде маркера на бисквитките в URL адреса.
Диаграмата, показана по-долу, илюстрира как работят бисквитките.
Тук,
1) Потребител иска за страница, която съхранява бисквитки
2) Сървърът задава бисквитката на компютъра на потребителя
3) Други заявки за страници от потребителя ще върнат името и стойността на бисквитката
В този урок ще научите -
- Защо и кога да използваме бисквитки?
- Създаване на бисквитки
- Извличане на стойността на бисквитката
- Изтрийте бисквитките
- Какво е сесия?
- Защо и кога да използвам сесии?
- Създаване на сесия
- Унищожаване на променливите на сесията
Защо и кога да използваме бисквитки?
-
Http е протокол без гражданство; бисквитките ни позволяват да проследяваме състоянието на приложението, като използваме малки файлове, съхранявани на компютъра на потребителя.
Пътят, до който бисквитките се съхраняват, зависи от браузъра.
Internet Explorer обикновено ги съхранява в папката Temporal Internet Files.
-
Персонализиране на потребителското изживяване - това се постига, като се позволява на потребителите да избират своите предпочитания.
Страницата, за която се иска, е персонализирана въз основа на зададените предпочитания в бисквитките.
- Проследяване на страниците, посетени от потребител
Създаване на бисквитки
Нека сега разгледаме основния синтаксис, използван за създаване на бисквитка.
ТУК,
- Php “setcookie” е PHP функцията, използвана за създаване на бисквитка.
- “Cookie_name” е името на бисквитката, която сървърът ще използва, когато извлича стойността си от променливата на масива $ _COOKIE. Това е задължително.
- “Cookie_value” е стойността на бисквитката и е задължителна
- „[Expiry_time]“ не е задължително; може да се използва за задаване на срока на годност на бисквитката, например 1 час. Времето се задава с помощта на функциите PHP time () плюс или минус брой секунди, по-големи от 0, т.е. time () + 3600 за 1 час.
- „[Cookie_path]“ не е задължително; може да се използва за задаване на пътя на бисквитките на сървъра. Наклонената черта „/“ означава, че „бисквитката“ ще бъде достъпна в целия домейн. Поддиректориите ограничават достъпа на бисквитките до поддомейна.
- „[Домейн]“ не е задължително, може да се използва за дефиниране на йерархията на достъпа до „бисквитки“, т.е. домейни. Обърнете внимание, че е възможно да имате поддомейн на поддомейн, стига общите знаци да не надвишават 253 знака.
- „[Secure]“ не е задължително, по подразбиране е false. Използва се за определяне дали бисквитката се изпраща чрез https, ако е зададена на true или http, ако е зададена на false.
- „[Httponly]“ не е задължително. Ако е зададено на true, тогава само клиентските скриптови езици, т.е. JavaScript не могат да имат достъп до тях.
Забележка: функцията за бисквитки на php set трябва да бъде изпълнена преди HTML отварящия маркер.
Нека сега разгледаме пример, който използва бисквитки.
Ще създадем основна програма, която ни позволява да съхраняваме потребителското име в бисквитка, която изтича след десет секунди.
Кодът по-долу показва изпълнението на горния пример „cookies.php“.
Изход:
the cookie has been set for 60 seconds
Извличане на стойността на бисквитката
Създайте друг файл с име „cookies_read.php“ със следния код.
Изход:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Забележка: $ _COOKIE е PHP, вграден в супер глобална променлива.
Той съдържа имената и стойностите на всички зададени бисквитки.
Броят на стойностите, които
Масивът $ _COOKIE може да съдържа зависи от размера на паметта, зададен в php.ini.
Стойността по подразбиране е 1GB.
Тестване на нашето приложение.
Да предположим, че сте запазили вашите PHP файлове в папката phptus.
- Стъпка 1 - отворете уеб браузъра си и въведете URL адреса http: //localhost/phptuts/cookies_read.php
Забележка: Показва се само празен масив
- Стъпка 2 - Браузър към URL адреса http: //localhost/phptuts/cookies.php
- Стъпка 3 - Превключете обратно към първия раздел, след което кликнете върху бутона за опресняване
Изчакайте минута, след това кликнете върху бутона за опресняване отново. Какви резултати получихте?
Изтрийте бисквитките
- Ако искате да унищожите бисквитка преди времето на изтичане, тогава задавате времето на изтичане на време, което вече е изтекло.
- Създайте нов файл с име cookie_destroy.php със следния код
- Повторете стъпки от 1 до 3 от горния раздел за извличане на стойности на бисквитки.
- Отворете URL адреса http: //localhost/phptuts/cookie_destroy.php
- Превключете към URL адреса http: //localhost/phptuts/cookies_read.php какви резултати показва?
Какво е сесия?
- Сесията е глобална променлива, съхранявана на сървъра.
- На всяка сесия се присвоява уникален идентификатор, който се използва за извличане на съхранени стойности.
- Всеки път, когато се създаде сесия, бисквитка, съдържаща уникалния идентификатор на сесия, се съхранява на компютъра на потребителя и се връща при всяка заявка към сървъра. Ако клиентският браузър не поддържа бисквитки, уникалният идентификатор на php сесия се показва в URL адреса
- Сесиите имат способността да съхраняват относително големи данни в сравнение с бисквитките.
- Стойностите на сесията се изтриват автоматично, когато браузърът е затворен. Ако искате да съхранявате стойностите за постоянно, трябва да ги съхраните в базата данни.
- Подобно на променливата на масива $ _COOKIE, променливите на сесията се съхраняват в променливата на масива $ _SESSION. Точно като бисквитките, сесията трябва да бъде стартирана преди всякакви HTML тагове.
Защо и кога да използвам сесии?
- Искате да съхранявате важна информация като потребителския идентификатор по-сигурно на сървъра, където злонамерените потребители не могат да се закалят с тях.
- Искате да предавате стойности от една страница на друга.
- Искате алтернатива на бисквитките в браузъри, които не поддържат бисквитки.
- Искате да съхранявате глобални променливи по ефективен и по-сигурен начин в сравнение с предаването им в URL адреса
- Разработвате приложение като пазарска количка, което трябва временно да съхранява информация с капацитет по-голям от 4KB.
Създаване на сесия
За да създадете сесия, първо трябва да извикате функцията PHP session_start и след това да съхраните стойностите си в променливата на масива $ _SESSION.
Да предположим, че искаме да знаем колко пъти е била заредена страница, можем да използваме сесия, за да направим това.
Кодът по-долу показва как да създавате и извличате стойности от сесии
Изход:
You are visitor number 1
Унищожаване на променливите на сесията
Функцията session_destroy () се използва за унищожаване на всички променливи на сесията на Php.
Ако искате да унищожите само един елемент на сесия, използвайте функцията unset ().
Кодът по-долу илюстрира как да се използват и двата метода.
Session_destroy премахва всички данни за сесията, включително бисквитки, свързани със сесията.
Unset освобождава само отделните променливи на сесията.
Други данни остават непокътнати.
Обобщение
- „Бисквитките“ са малки файлове, записани на компютъра на потребителя
- Бисквитките могат да се четат само от издаващия домейн
- Бисквитките могат да имат срок на годност, ако не е зададен, тогава бисквитката изтича, когато браузърът е затворен
- Сесиите са като глобални променливи, съхранявани на сървъра
- На всяка сесия се дава уникален идентификационен идентификатор, който се използва за проследяване на променливите за потребител.
- Както бисквитките, така и сесиите трябва да бъдат стартирани, преди да бъдат изпратени HTML маркери в браузъра.