Diskuze: Cookies používání
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.
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 ?
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.
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).
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.
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.
Nebo dokud ti ho nesmaze prohlizec. Coz Safari treba dela.
Zobrazeno 8 zpráv z 8.