PROGRAMOVÁNÍ V PHP PERSONAL HOME PAGES SESSIONS
2 COOKIES JEDNÁ SE O KRÁTKÉ TEXTOVÉ ŘETĚZCE, JEŽ SI MEZI SEBOU VYMĚŇUJÍ WEBOVÝ SERVER A WEBOVÝ KLIENT V RÁMCI HLAVIČKY HTTP (TEDY MIMO VLASTNÍ WEBOVÝ DOKUMENT). SERVER COOKIE VYTVOŘÍ A ZAŠLE JI KLIENTOVI, KTERÝ JI U SEBE ULOŽÍ. POKUD PŘÍŠTĚ PŘISTUPUJETE NA STEJNÝ SERVER, KLIENT TUTO INFORMACI OPĚT ZAŠLE V RÁMCI POŽADAVKU HTTP WEBOVÉMU SERVERU, JENŽ TAK MŮŽE ZJISTIT, ŽE TENTO KLIENT JIŽ NA SERVERU BYL. ZÁROVEŇ JE MOŽNÉ V TĚCHTO ŘETĚZCÍCH UCHOVÁVAT NEJRŮZNĚJŠÍ INFORMACE – POČET NÁVŠTĚV, POSLEDNÍ PROHLÍŽENOU STRÁNKU ČI IDENTIFIKACI UŽIVATELE. COOKIES JSOU UCHOVÁVÁNY V BĚŽNÝCH TEXTOVÝCH SOUBORECH NA KLIENTSKÝCH POČÍTAČÍCH A STEJNĚ TAK JSOU NEZAKÓDOVANÉ PŘENÁŠENY INTERNETEM. V ŽÁDNÉM PŘÍPADĚ SE TEDY NEHODÍ PRO UCHOVÁVÁNÍ CITLIVÝCH INFORMACÍ.
3 POSLÁNÍ COOKIE CHCETE-LI KLIENTOVI POSLAT NĚJAKOU INFORMACI PROSTŘEDNICTVÍM COOKIES, POUŽIJTE FUNKCI SetCookie() TATO FUNKCE MÁ AŽ SEDM PARAMETRŮ V NÁSLEDUJÍCÍ SYNTAXI : SetCookie(jméno, hodnota, platnost, cesta, doména, bezpečnost); JEDINÝM POVINNÝM PARAMETREM JE PRVNÍ PARAMETR, JMÉNO. OBVYKLE SE POUŽÍVAJÍ JEŠTĚ DVA DALŠÍ PARAMETRY : HODNOTA, KTEROU CHCEME POSLAT, A DOBA PLATNOSTI.
4 ZÁSADY COOKIE ZADÁTE-LI POUZE JMÉNO, JE DANÁ COOKIE Z POČÍTAČE KLIENTA SMAZÁNA. NEZADÁTE-LI DOBU PLATNOSTI, JE OBVYKLE DANÁ COOKIE PLATNÁ POUZE PRO DANÉ SEZENÍ, TJ. SPUŠTĚNÍ PROHLÍŽEČE. POKUD JEJ ZAVŘETE, VŠECHNY TAKOVÉ INFORMACE SE ZTRATÍ. DOBA PLATNOSTI JE ZADÁVÁNA VE STANDARDNÍM UNIXOVÉM FORMÁTU, TJ. VE VTEŘINÁCH OD ZAČÁTKU ROKU NEJSNÁZE SE ZADÁVÁ S VYUŽITÍM FUNKCE TIME(), JEŽ VRACÍ AKTUÁLNÍ ČAS. ZADÁTE-LI DOBU PLATNOSTI DO MINULOSTI, DOJDE TÉŽ K ODSTRANĚNÍ COOKIES Z VAŠEHO POČÍTAČE.
5 PŘÍKLADY POSLÁNÍ COOKIES SetCookie („Testovací“, „Nějaká hodnota“); //dočasná SetCookie („Testovací“); //smazání hodnoty SetCookie („PosledniStranka“, $PHP_SELF, time() ); //platná 1 den SetCookie („Pocitadlo“, $PocetPristupu, time() + 60*60*24*30); //platná 1 měsíc
6 ČTENÍ DAT POMOCÍ COOKIES <?php if ($Testovaci) echo „Hodnota naší cookie Testovaci: $Testovaci“; if (!$Pocitadlo) echo „Vítejte na našich stránkách, cizinče!“; elseif ($Pocitadlo < 5) echo „Opět vás vítáme na našich stránkách“; else echo „Velmi si vážíme tak pravidelných návštěvníků jako jste vy“; ?>
7 CO JE TO ZPRACOVÁNÍ SEZENÍ HYPERTEX TRANSFER PROTOCOL, SPÍŠE ZNÁMÝ POD ZKRATKOU HTTP, DEFINUJE PRAVIDLA PRO PŘENOS TEXTU, GRAFIK, VIDEA A VŠECH DALŠÍCH DAT PŘES WORLD WIDE WEB. JE TO TZV. BEZSTAVOVÝ (STATELESS) PROTOKOL, COŽ ZNAMENÁ, ŽE KAŽDÝ POŽADAVEK SE ZPRACOVÁVÁ BEZ JAKÝCHKOLI VĚDOMOSTÍ O JAKÝCHKOLI PŘEDCHOZÍCH NEBO NÁSLEDNÝCH POŽADAVCÍCH. VÝVOJÁŘI VŠAK TOUŽILI VYTVÁŘET TAKOVÉ KOMPLEXNÍ WEBOVÉ APLIKACE, KTERÉ BY SE UMĚLY PŘIZPŮSOBOVAT SPECIFICKÉMU CHOVÁNÍ UŽIVATELE I JEHO PREFERENCÍM. A TAK ZAČALI UKLÁDAT DROBKY INFORMACÍ NA STROJI KLIENTA. TÉTO PRAKTICE SE ŘÍKÁ COOKIES. ZPRACOVÁNÍ SEZENÍ JE V PODSTATĚ MAZANÝ OBCHVAT PROBLÉMU BEZSTAVOVOSTI. KAŽDÝ NÁVŠTĚVNÍK WEBU SE OZNAČÍ JEDNOZNAČNÝM IDENTIFIKAČNÍM ATRIBUTEM, KTERÉMU SE ŘÍKÁ ID SEZENÍ (BĚŽNĚ SE POUŽÍVÁ ZKRATKA SID, NEBOLI SESSION ID).
8 SESSION NEBOLI RELACE UMOŽŇUJE PŘESNOU IDENTIFIKACI UŽIVATELE A POHYB NA SERVERU. ZA POMOCI SESSION JSOU NAPROGRAMOVÁNY VŠECHNY WEB-BASED MAILOVÉ SERVERY. MÁ TEDY POUŽITÍ VŠUDE TAM, KDE JE ZAPOTŘEBÍ MONITOROVAT NEBO OVĚŘOVAT UŽIVATELE, NAPŘÍKLAD POMOCÍ JEHO IP ADRESY. POUŽÍVÁ SE TAKÉ PRO MOŽNOST VLASTNÍ ÚPRAVY VZHLEDU (CUSTOMIZING) NAPŘÍKLAD NA VYHLEDÁVACÍCH NEBO KATALOGIZAČNÍCH SERVERECH, KDY PO VSTUPU NA STRÁNKU SERVER OVĚŘÍ VAŠI IDENTITU A ZOBRAZÍ INFORMACE, NOVINKY NEBO ZPRÁVY PŘESNĚ PODLE VAŠEHO DŘÍVĚJŠÍHO NASTAVENÍ. NUTNO PODOTKNOUT, ŽE SESSION JSOU IMPLEMENTOVÁNY DO PHP AŽ OD VERZE 4.0. SESSION
9 JAK SID PŘIŘADIT DANÉMU UŽIVATELI COOKIES – MÍSTO TOHO ABY SE DO COOKIES UKLÁDALY PREFERENCE UŽIVATELE, ULOŽÍ SE SID. TO ZDA SE BUDOU AKCEPTOVAT COOKIES, JE PLNĚ V KOMPETENCI KLIENTA. UŽIVATEL MUSÍ MÍT ZAPNUTU PODPORU COOKIES. PŘEPISOVÁNÍ URL – DRUHÁ METODA PŘENÁŠENÍ SID SPOČÍVÁ PROSTĚ V TOM, ŽE SE SID PŘIPOJÍ NA KONEC KAŽDÉ MÍSTNÍ URL NALEZENÉ NA POŽADOVANÉ STRÁNCE. PŘEPISOVÁNÍ URL NEUMOŽŇUJE ZACHOVÁVAT TRVALÉ INFORMACE MEZI SEZENÍMI, TAKŽE PROCES AUTOMATICKÉHO PŘIDÁVÁNÍ SID K URL NEPOKRAČUJE, JAKMILE UŽIVATEL OPUSTÍ VÁŠ WEB.
10 SESSION START NEJPRVE JE KAŽDÉMU SKRIPTU PHP, KDE CHCETE PRACOVAT S OBJEKTEM SESSION, NUTNO TUTO INFORMACI SDĚLIT PŘÍKAZEM Session_Start. POKUD MÁTE PŘÍSTUP KE KOFIGURAČNÍMU SOUBORU php.ini, MŮŽETE SI TUTO PRÁCI UŠETŘIT NASTAVENÍM PARAMETRU session.auto_start NA HODNOTU 1.
11 OTEVÍRÁNÍ STRÁNKY S PŘIHLÁŠENÍM PŘIHLAŠOVACÍ FORMULÁŘ test.php
12 FUNKČNÍ SKRIPT PŘIHLAŠOVACÍ ÚDAJE POKUD NENÍ SPLNĚNA PODMÍNKA ZNOVU OTEVŘENÍ FORMULÁŘE login.php
13 SPUŠTĚNÍ STRÁNKY test.php login.php xxx.php
14 SKRIPT STRÁNKY SPUŠTĚNÍ SESSION UKONČENÍ SEZENÍ