PHP Cookies
Cookies са текстови файлове, съхранени на компютъра, с цел проследяване. PHP подържа HTTP-бисквитки.
Има три стъпки в идентифициране на завърналите се потребители:
1 Сървър скрипт изпраща набор от "бисквитките" на браузъра. Примерно име, възраст, или идентификационен номер и др.
2 Браузера съхранява тази информация за бъдеща употреба.
3 Когато браузъра изпраща искане на уеб сървъра, той изпраща тази cookies информация на сървъра и сървъра използва тази информация за идентифициране на потребителя.
Тази глава ще ви научи как да настроите "бисквитките", как да получите достъп до тях и как да ги изтриете.
Анатомия на Cookie:
"Бисквитките" обикновено са в заглавната част на HTTP (въпреки че JavaScript може също да зададе бисквитка директно на браузъра). PHP скрипт, поставя
бисквитката, да изпрати заглавия, които изглеждат подобно на това:
CODE
Както можете да видите, Set-Cookie съдържа името, стойноста, дата GMT,пътя и домейн. Името и стойността, ще бъде URL кодирани. В свършващото поле е зададена инструкция към браузъра, да "забрави" бисквитката, след дадено време и дата.
Браузърът е конфигуриран да съхранява "бисквитките" той, ще запази тази информация до датата на изтичане на срока на годност. Ако потребителят посочи браузър на всяка страница, която съответства на пътя и Домейнът на бисквитката, той ще изпрати отново бисквитката на сървара. Браузъра може да изглежда като това:
CODE
PHP скрипта, ще имат достъп до cookie в променлива околна среда $_COOKIE или $HTTP_COOKIE_VARS[] който притежава всичките имена и ценности на
бисквитките.Над бисквитката може да използвате $HTTP_COOKIE_VARS["name"].
Настройка на Cookies с PHP:
PHP задава SetCookie () функция за бисквитка. Тази функция изисква до шест аргументи и трябва да бъде извикана преди <html> тагове. За всяка бисквитка тази функция трябва да се зададе отделно.
CODE
Ето подробно аргументи:
Name Име - определя името на бисквитката и се съхранява в променлива среда наречена HTTP_COOKIE_VARS. Тази променливост се използва за достъп до бисквитките.
Value Стойност- определя стойността на променливите имена и съдържанието, което всъщност искате да съхраните.
Expiry Изтичане - бъдеще време в секунди, от 00:00:00 GMT на 1-ви Jan 1970. След това време бисквитките, ще станат недостъпни. Ако този параметър не е зададен, тогава бисквитка автоматично ще изтече, когато Web Browser е затворен.
Domain Домейн - използвани за обозначаване на името на домейна в много големи домейни и трябва да съдържа най-малко два периода, за да бъдат валидни. Всички бисквитки са валидни само за хост и домейн, който ги е създал.
Security Сигурност - може да се определя до 1,да се уточни, че бисквитката трябва да се изпращат само от сигурно предаване, при което се използва друг начин и до 0, което означава, бисквитка може да бъде изпратена чрез редовни HTTP HTTPS.
Path –Това определя директориите, за който бисквитката е валидна. Напред
наклонена черта позволява бисквитката да бъдат валидна за всички директории.
В пример ще създадем две бисквитки, като името и възраста на тези "бисквитки" ще изтече след един час.
CODE
Достъп до Cookies с PHP
PHP предоставя много начини за достъп до cookies. Най-лесният начин е да използвате $ _COOKIE или $ HTTP_COOKIE_VARS променливи. В последващият пример ще имате достъп до всички бисквитки, посочени от по-горният пример.
CODE
Изтриване на Cookie с PHP
По принцип, за да изтриете бисквитка, трябва да се обърнете към SetCookie () с аргумент, но това не винаги работи добре и не трябва да се разчита.
Най-безопасното е да зададете куки с дата, която вече е изтекла:
CODE
Има три стъпки в идентифициране на завърналите се потребители:
1 Сървър скрипт изпраща набор от "бисквитките" на браузъра. Примерно име, възраст, или идентификационен номер и др.
2 Браузера съхранява тази информация за бъдеща употреба.
3 Когато браузъра изпраща искане на уеб сървъра, той изпраща тази cookies информация на сървъра и сървъра използва тази информация за идентифициране на потребителя.
Тази глава ще ви научи как да настроите "бисквитките", как да получите достъп до тях и как да ги изтриете.
Анатомия на Cookie:
"Бисквитките" обикновено са в заглавната част на HTTP (въпреки че JavaScript може също да зададе бисквитка директно на браузъра). PHP скрипт, поставя
бисквитката, да изпрати заглавия, които изглеждат подобно на това:
CODE
| 1 2 3 4 5 6 7 | HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html |
Както можете да видите, Set-Cookie съдържа името, стойноста, дата GMT,пътя и домейн. Името и стойността, ще бъде URL кодирани. В свършващото поле е зададена инструкция към браузъра, да "забрави" бисквитката, след дадено време и дата.
Браузърът е конфигуриран да съхранява "бисквитките" той, ще запази тази информация до датата на изтичане на срока на годност. Ако потребителят посочи браузър на всяка страница, която съответства на пътя и Домейнът на бисквитката, той ще изпрати отново бисквитката на сървара. Браузъра може да изглежда като това:
CODE
| 1 2 3 4 5 6 7 8 9 | GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz |
PHP скрипта, ще имат достъп до cookie в променлива околна среда $_COOKIE или $HTTP_COOKIE_VARS[] който притежава всичките имена и ценности на
бисквитките.Над бисквитката може да използвате $HTTP_COOKIE_VARS["name"].
Настройка на Cookies с PHP:
PHP задава SetCookie () функция за бисквитка. Тази функция изисква до шест аргументи и трябва да бъде извикана преди <html> тагове. За всяка бисквитка тази функция трябва да се зададе отделно.
CODE
| 1 | setcookie(name, value, expire, path, domain, security); |
Ето подробно аргументи:
Name Име - определя името на бисквитката и се съхранява в променлива среда наречена HTTP_COOKIE_VARS. Тази променливост се използва за достъп до бисквитките.
Value Стойност- определя стойността на променливите имена и съдържанието, което всъщност искате да съхраните.
Expiry Изтичане - бъдеще време в секунди, от 00:00:00 GMT на 1-ви Jan 1970. След това време бисквитките, ще станат недостъпни. Ако този параметър не е зададен, тогава бисквитка автоматично ще изтече, когато Web Browser е затворен.
Domain Домейн - използвани за обозначаване на името на домейна в много големи домейни и трябва да съдържа най-малко два периода, за да бъдат валидни. Всички бисквитки са валидни само за хост и домейн, който ги е създал.
Security Сигурност - може да се определя до 1,да се уточни, че бисквитката трябва да се изпращат само от сигурно предаване, при което се използва друг начин и до 0, което означава, бисквитка може да бъде изпратена чрез редовни HTTP HTTPS.
Path –Това определя директориите, за който бисквитката е валидна. Напред
наклонена черта позволява бисквитката да бъдат валидна за всички директории.
В пример ще създадем две бисквитки, като името и възраста на тези "бисквитки" ще изтече след един час.
CODE
| 1 2 3 4 5 6 7 8 9 10 11 12 | <?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>Setting Cookies with PHP</title> </head> <body> <?php echo "Set Cookies"?> </body> </html> |
Достъп до Cookies с PHP
PHP предоставя много начини за достъп до cookies. Най-лесният начин е да използвате $ _COOKIE или $ HTTP_COOKIE_VARS променливи. В последващият пример ще имате достъп до всички бисквитки, посочени от по-горният пример.
CODE
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"] . "<br />"; ?> </body> </html>[/code Можете да използвате функцията isset () да се провери, дали бисквитката е зададена, или не. [code]<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . "<br />"; else echo "Sorry... Not recognized" . "<br />"; ?> </body> </html> |
Изтриване на Cookie с PHP
По принцип, за да изтриете бисквитка, трябва да се обърнете към SetCookie () с аргумент, но това не винаги работи добре и не трябва да се разчита.
Най-безопасното е да зададете куки с дата, която вече е изтекла:
CODE
| 1 2 3 4 5 6 7 8 9 10 11 12 | <?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>Deleting Cookies with PHP</title> </head> <body> <?php echo "Deleted Cookies" ?> </body> </html> |





