IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Cookies používání

Aktivity
Avatar
pgarsky
Člen
Avatar
pgarsky:27.7.2016 12:06

Ahoj, nevěděl jsem kam to napsat, tak to píšu sem. Mohl by mi někdo vysvětlit, v jakém jazyce a jak se používá obsah cookies? Př. Část kódu + vysvětlení. Děkuji :)

Odpovědět
27.7.2016 12:06
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Patrik Smělý
Tvůrce
Avatar
Odpovídá na pgarsky
Patrik Smělý:27.7.2016 13:03

Ahoj, cookies se dají využívat jak v backendu (serverová část - PHP, ASP.NET, NodeJS, ...) tak i na straně frontendu (JavaScript - script běžící přímo v prohlížeči). Jedná se o malé datové soubory které se ukládají uživateli do počítače a při každém navštívení téhož serveru (například ITnetwork.cz) se soubory opět pošlou zpět na server a ten s nimi může dále pracovat. Jak jsem již psal tak k těmto souborům má přístup i JavaScript (pokud tedy nemají nastavený atribut http only) takže je může vytvářet, zobrazovat a popřípadě i měnit.

Cookies mají i dobu vypršení čili například nastavíš že sušenka má existovat za dva dny takže za následující dva dny se sama vymaže (tato funkce se hodí například při přihlašování - chceš aby byl uživatel přihlášen například dva týdny - a následovně musel znova použít své heslo k přihlášení).

Příklad uvedu v jazyce PHP (serverový jazyk):

setcookie("testovaciSusenka", "hodnota", time() + (86400 * 30), "/");

Fukce setcookie sušenku vytvoří a uživateli se stáhne do počítače, tato funkce bere několik parametrů a to: jméno sušenky, hodnotu, počet sekund do data expirace - (86400 * 30) = 1 den, cesta - sušenky se dají setnout například jen na určitou URL například na /login. Funkce obsahuje i další atributy ale klíčové jsou ty co jsem vypsal.

Nyní se přisuneme k části jak sušenku získat v PHP - respektive její hodnotu dle jména sušenky.

$obsahSusenky = $_COOKIE["testovaciSusenka"]; //Náš obsah bude string "hodnota".

K získání sušenky se v PHPčku nachází globální asociativní pole $_COOKIE ve kterém se jako klíč nachází jméno sušenky.

S upravováním sušenky je to pak trochu složitější (na straně serveru) jelikož musíš předchozí sušenku přepsat (vytvoříš novou sušenkou se stejným jménem) ale tím bohužel ztratíš původní expiraci tudíž pokud by si chtěl zachovat původní expiraci musel by si do hodnoty sušenky vložit i její původní expiraci a základě toho vypočítat novou expiraci která by byla shodná s původní.

A pokud by si chtěl sušenku odebrat (opět na straně server) tak je zase zapotřebí původní přepsat a nastavit nové expiraci na -1.

Zde se můžeš podívat na syntaxi v JavaScriptu.

Editováno 27.7.2016 13:05
Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
27.7.2016 13:03
Avatar
pgarsky
Člen
Avatar
Odpovídá na Patrik Smělý
pgarsky:27.7.2016 13:23

Takže jestli jsem to správně pochopil, sušenky se používají jednak k jezení a jednak k zaznamenávání dat uživatele ? :D

Nahoru Odpovědět
27.7.2016 13:23
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Patrik Smělý
Tvůrce
Avatar
Odpovídá na pgarsky
Patrik Smělý:27.7.2016 13:28

Ano, přesně tak :). - obvykle se používají například k uchování určitého tokenu či idečka aby se dal daný uživatel například vyhledat v databázi.

 
Nahoru Odpovědět
27.7.2016 13:28
Avatar
Honza Bittner
Tvůrce
Avatar
Honza Bittner:27.7.2016 15:04

Pokud bys chtěl uchovávat data aplikace či jiné věci přímo v prohlížeči uživatele (neviditelné ze strany serveru), dá se využít v moderních prohlížečích také local storage (dokud sám nevymažeš) či session storage (smaže se při zavření okna/prohlížeče).

Nahoru Odpovědět
27.7.2016 15:04
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Patrik Smělý
Neaktivní uživatel:27.7.2016 15:17

No, cookies bych úplně na uchování ID uživatele nepoužíval. Cookies se spíš používají například na uložení nastavení jazyka stránky.

Editováno 27.7.2016 15:17
Nahoru Odpovědět
27.7.2016 15:17
Neaktivní uživatelský účet
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Adam Ježek:27.7.2016 15:38

Jde o to, jak je to udělané. Pokud je v cookie uloženo ID uživatele, a je přístupná i ze strany prohlížeče, tak pouhým přepsáním se můžu přihlásit jako admin (pokud trefím jeho ID) - a to je rozhodně hodně špatný řešení.
Pokud je například přístupná pouze ze strany serveru, nebo to máš dostatečné ošetřené (například v nich není uložené ID uživatele, ale jenom ID session + čas započatí session/něco dalšího pro kontrolu a IDčko se pak následně tahá z DB, kde jsou uložená sessionID) tak by se to dalo použít pro uložení informace o přihlášeném uživateli.

Editováno 27.7.2016 15:39
Nahoru Odpovědět
27.7.2016 15:38
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na Honza Bittner
Neaktivní uživatel:28.7.2016 16:43

Nebo dokud ti ho nesmaze prohlizec. Coz Safari treba dela.

Nahoru Odpovědět
28.7.2016 16:43
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.