Hlavní nabídka: |
Základy
Reference
Příklady
|
|
|
Cookie manipulátor
V tomto článku si předvedeme, jak udělat takového cookie admina.
Jak zjistit, jaké cookies máme ve svém prohlížeči uchovány? Jak je vytvářet zcela dynamicky? ... Nemáte něco těžšího? ... Předveďme si to názorně:
<HTML>
<HEAD>
<TITLE>Cookie manipulátor</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function prectiCookie(nazev)
{
obsah=document.cookie; upravene=obsah.split(';');
velikost=upravene.length; kusy=""; vrat="";
for (x=0;(x<velikost && vrat=="");x++)
{
kusy=upravene[x].split('=');
if (kusy[0].substring(0,1)==' ')
kusy[0]=kusy[0].substring(1,kusy[0].length);
if (kusy[0]==nazev) vrat=kusy[1];
}
if (vrat) return unescape(vrat);
else return false;
}
function zapisCookie(nazev,hodnota,vyprsi)
{
datum=new Date();
if(vyprsi) {
datum.setTime(datum.getTime()+vyprsi);
document.cookie=nazev+"="+escape(hodnota)
+"; expires="+datum.toGMTString(); }
else document.cookie=nazev+"="+escape(hodnota);
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
function vyprsi(dt)
{
obdobi=document.f2.obdobi.selectedIndex;
if (dt==0) return 0;
else if (obdobi==0) return 86400000*dt;
else if (obdobi==1) return 2678400000*dt;
else if (obdobi==2) return 31536000000*dt;
}
function zobraz_cookie()
{
txt="Existující cookies:\n\n";
cookies=document.cookie;
pole_cookie=cookies.split("; ");
velikost_pole=pole_cookie.length;
for (a=0;a<velikost_pole;a++) txt+=pole_cookie[a]+"\n";
window.alert(txt);
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<H2>Cookie manipulátor</H2>
<FORM>
<INPUT TYPE="button" VALUE="Zobraz cookies" onClick="zobraz_cookie();">
</FORM>
<HR><FORM NAME="f1">
<PRE>
Název cookie: <INPUT TYPE="text" NAME="m1">
Jeho hodnota: <INPUT TYPE="text" NAME="h1">
</PRE>
<INPUT TYPE="button" VALUE="Přečti cookie" o
onClick="f1.h1.value=prectiCookie(f1.m1.value);">
</FORM>
<HR>
<FORM NAME="f2">
<PRE>
Název cookie : <INPUT TYPE="text" NAME="m2">
Jeho hodnota : <INPUT TYPE="text" NAME="h2">
Vyprší za : <INPUT TYPE="text" NAME="dt" VALUE="0"> <SELECT
NAME="obdobi">
<OPTION SELECTED>dní
<OPTION>měsíců
<OPTION>roků
</SELECT>
</PRE>
<INPUT TYPE="button" VALUE="Zapiš cookie"
onClick="zapisCookie(f2.m2.value,f2.h2.value,vyprsi(f2.dt.value));">
<INPUT TYPE="button" value="Smaž cookie"
onClick="zapisCookie(f2.m2.value,'')">
</FORM>
</BODY>
</HTML>
Pro výsledek klikněte ZDE.
Vysvětlení činnosti:
V tomto příkladu jsme použili opět staré - známé funkce prectiCookie() a zapisCookie(). Ty, kteří se s nimi doposud neseznámili, odkazuji na dva předchozí články. A nyní se vrhneme koknrétně na nové funkce. V tomto příkladu to jsou funkce vyprsi() a zobraz_cookie(). První funkce je úzce napojena na formulář, s kterým bude pracovat. V něm je vyjíždějící seznam (tag select), který se skládá ze tří vyriant - dní, měsíců a roků. Abychom tedy termín vypršení fungoval, musíme uvedenou hodnotu převést na milisekundy a pak násobit počtem jednotek obsažených v dané variantě. Tedy např. u měsíce 30*24*60*60*1000. K tomu jsme použili podmínky if. Danou hodnotou tedy vynásobíme číselným údajem (proměnná dt), uvedeným uživatelem. Druhá funkce už je o něco složitější. Tato funkce nám vyvolá výstražné informační okno, ve kterém bude obsah všech cookies, které jsou uloženy v paměti prohlížeče. Cílová proměnná (jejiž obsah bude vypsán) je txt. Nejdříve ji přiřadíme prostý text. Poté proměnné cookies přiřadíme cookie, které jsou přístupné na stránce, která činnost document.cookie inicializuje. Tyto cookies si rozdělíme pomocí funkce split, v jejimž argumentu se nachází "rozdělovač" středník a mezera. Toto rozdělení přiřadíme proměnné pole_cookie. Abychom zjistili velikost tohoto pole, přiřadíme proměnné funkci lenght. Nakonec použijeme podmínku for, která bude opakovaně k proměnné txt připisovat názvy cookie a jejich hodnoty. Nakonec to necháme vypsat do výstražného informačního okna syntaxí window.alert. Další syntaxe už se sestává pouze s jednotlivých prvků cookie manipulátoru, které jsou snad jasné. Pokud ne, ozvěte se :o)
15.05.2002 | Cookies | David Havlíček
|
|
Dnes je 15. 11. 2024 Svátek má Leopold | |
Bleskové aktuality: |
10.12.2002 Dlouho jsme tu neměli příklady, tak co kdybychom si dneska jeden dali?
07.12.2002 Poslední operáty, které si představíme, jsou speciální.
02.12.2002 Po delší pauze si představíme další operátory - řetězcové.
17.11.2002 Next operátory jsou přiřazovací.
10.11.2002 Jedněmi z posledních operátorů jsou porovnávací.
02.11.2002 Už jste slyšeli o logických operátorech? Pár jich taky je.
29.10.2002 Dalšími operátory jsou bitové.
26.10.2002 Dnes si představíme první z řady operátorů - aritmetické operátory.
24.10.2002 Další částí referencí jsou příkazy.
18.10.2002 Dnes se mrkneme na referenční přehled funkcí.
12.10.2002 Window je objekt, který má snad nejvíce metod a vlastností, tak se mu dnes podíváme na zoubek.
06.10.2002 Netradičně v neděli další objekt - string.
28.09.2002 Další sobota. Další objekt - screen.
21.09.2002 Hodně používáný je objekt navigator. Proto se na něj dneska zaměříme.
14.09.2002 Po týdenní pauze další referenční článek o objektu - tentokrát Math.
07.09.2002 Objekt location bude náš dnešní cíl.
04.09.2002 Na paškál si tentokrát vezmeme objekt history.
|
|
|