E-gradiva
>
Računalništvo
>
Programiranje
>
Načrtovanje in razvoj spletnih aplikacij
>
Javascript
>
Primeri
> Primer 48
Prijava
Piškotki
Izvorna koda HTML:
Rezultat izvedbe kode HTML:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" > /*S funkcijo postaviPiskotek nastavimo piškotek. Funkcija sprejme kar nekaj parametrov, od katerih sta obvezna samo prva dva (ime in vrednost). Parameter rok mora biti (če ga podamo) objekt razreda Date, parametra pot in domena sta niza, parameter varno pa logična vrednost. */ function postaviPiskotek(ime, vrednost, rok, pot, domena, varno) { document.cookie = ime + "=" + encodeURIComponent(vrednost) + ((rok) ? "; expires=" + rok.toUTCString() : "") + ((pot) ? "; path=" + pot : "") + ((domena) ? "; domain=" + domena : "") + ((varno) ? "; secure" : ""); } // konec postaviPiskotek /* S funkcijo brisiPiskotek lahko piškotek zbrišemo. Funkcija ima en obvezen parameter (ime), ki določa, kateri piškotek želimo zbrisati. Parametra pot in domena morata imeti enaki vrednosti kot takrat, ko smo piškotek nastavili. */ function brisiPiskotek(ime, pot, domena) { document.cookie = ime + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT" + ((pot) ? "; path=" + pot : "") + ((domena) ? "; domain=" + domena : ""); } // konec brisiPiskotek /* S funkcijo vzamiPiskotek pa si delo s piškotki resnično olajšamo. Funkcija namreč poišče in vrne vrednost piškotka z danim imenom, pri čemer ima kar precej dela, saj je vrednost piškotka zapisana nekje v nizu document.cookie. */ function vzamiPiskotek(ime) { ime += "="; // lastnosti ime ( niz znakov) dodamo še znak = var piskotek = document.cookie; // spremenljivki piskotek priredimo document.cookie var zacetek = piskotek.indexOf("; " + ime); // zacetni indeks v nizu znakov document.cookie, ki vsebuje lastnost ime if (zacetek >= 0) zacetek+= 2; // ce je lastnost ime na sredini niza document.cookie else { // ce je lastnost ime na zacetku niza document.cookie zacetek = piskotek.indexOf(ime); if (zacetek!= 0) return null; // ce lastosti ime ni v piskotku, vrne funkcija null } zacetek+= ime.length; // zacetni indeks v nizu znakov document.cookie, ki vsebuje vrednost lastnosti ime var konec = piskotek.indexOf(";", zacetek); // koncni indeks v nizu znakov document.cookie, ki vsebuje vrednost lastnosti ime if (konec == -1) konec = piskotek.length; // ce je vrednost lastnosti ime na koncu niza document.cookie return decodeURIComponent(piskotek.substring(zacetek, konec)); // vrnitev vrednosti lastnosti ime } // konec vzamiPiskotek /* Pri nastavljanju veljavnosti piškotka bo v precejšnjo pomoč funkcija kdajPotecePiskotek, ki sestavi in vrne datum, kakršen bo čez nekaj dni (stevilo_dni je parameter). Podatek expires določa, kako dolgo bo piškotek veljaven. Po izteku tega roka bo spletni brskalnik piškotek zbrisal. Vrednost tega podatka mora biti v standardni obliki, kot jo vrne metoda toUTCString razreda Date, na primer: " Sat, 29 Dec 2007 21:37:42 UTC". Če podamo rok, ki je že potekel, bo brskalnik piškotek takoj pobrisal. Če roka ne določimo, veljavnost piškotka poteče, ko uporabnik zapusti naše spletne strani. */ function kdajPotecePiskotek(stevilo_dni) { var datum = new Date(); datum.setTime(datum.getTime() + stevilo_dni * 24 * 3600 * 1000); return datum; } // konec kdajPotecePiskotek // Funkcija izbriše lastnosti uporabnik (uporabniško ime) in stevec (stevec obiskov) ter ponovno nalozi dokument . function pozabi() { brisiPiskotek("uporabnik"); brisiPiskotek("stevec"); location.reload(); } // konec pozabi // Funkcija omogoča vnos imena uporabnika - lastnosti uporabnik priredi vrednost, ki jo vnesemo // Funkcija tudi ponovno naloži dokument. function spremeniUporabnika() { var uporabnik = prompt("Vpiši svoje ime:", uporabnik); if (uporabnik == null) return; if (!uporabnik) pozabi(); else { postaviPiskotek("uporabnik", uporabnik, kdajPotecePiskotek(365)); location.reload(); } } // konec spremeniUporabnika </script> <title>Primer: Štetje dostopov do spletne strani in vnos ter brisanje uporabnik</title> </head> <body> <h1>Štetje dostopov do spletne strani in vnos ter brisanje uporabnika</h1> <form action=""> <p> <input type="button" value="Pozabi ime" onclick="pozabi()" /> <input type="button" value="Spremeni ime" onclick="spremeniUporabnika()" /> </p> </form> <mce:script type="text/javascript"><!-- //Povečaj števec obiskov naše strani ter nastavi dodatne lastnosti piškotku var stevec = vzamiPiskotek("stevec"); // iz piškotka vzamemo števec obiskov //Izpis števca obiskov strani in piškotka pred njegovim povečanjem in nastavljanjem dodatnih lastnosti piškotka document.write("Pred povečanjem števca je " + stevec + ". ogled te strani. <br /> Vsebina piškotka je naslednja: " +decodeURIComponent(document.cookie)+ "<br />"); if (!stevec) stevec = 1; // če še števec obiskov ni nastavljen - stran obiščemo prvič else ++stevec; // povečanje števca obiskov za 1, če stran ponovno obiščemo postaviPiskotek("stevec", stevec, kdajPotecePiskotek(365)) // Nastavljanje dodatnih lastnosti piškotku. var datum= new Date(); postaviPiskotek("Predmet", "Razvoj aplikacij za internet"); // lastnost Predmet postaviPiskotek("Demonstracija", "Kako delujejo piškotki"); // lastnost Demonstracija postaviPiskotek("Datum zadnjega obiska:", datum); // lastnost Daum zadnjega obiska //Izpis števca obiskov strani in piškotka po njegovem povečanju in nastavljanju dodatnih lastnosti piškotka document.write("Po povečanju števca obiskov: <br />") document.write("To je vaš " + stevec + ". ogled te strani. <br />" + "Vsebina piškotka je naslednja: " +decodeURIComponent(document.cookie)+ "<br />"); // --></mce:script> <p>Pritisni gumb Refresh (Reload) in opazuj, kaj se dogaja s števcem.</p> </body> </html>
Primer 1
Primer 2
Primer 3
Primer 4
Primer 5
Primer 6
Primer 7
Primer 8
Primer 9
Primer 10
Primer 11
Primer 12
Primer 13
Primer 14
Primer 15
Primer 16
Primer 17
Primer 18
Primer 19
Primer 20
Primer 21
Primer 22
Primer 23
Primer 24
Primer 25
Primer 26
Primer 27
Primer 28
Primer 29
Primer 30
Primer 31
Primer 32
Primer 33
Primer 34
Primer 35
Primer 36
Primer 37
Primer 38
Primer 39
Primer 40
Primer 41
Primer 42
Primer 43
Primer 44
Primer 45
Primer 46
Primer 47
Primer 48
Primer 49
Primer 50
Primer 51
Primer 52
Primer 53
Primer 54
Primer 55
Primer 56
Primer 57
Primer 58
Primer 59
Primer 60
Primer 61
Primer 62
Primer 63
Primer 64
Primer 65
Primer 66
Primer 67
Primer 68
Primer 69
Primer 70
Primer 71
Primer 72