cookies
ein paar fragen zum dem beispiel:
1 <html>
2 <head>
3 <script language="JavaScript">
4 function GetCookie (name) {
5 var arg = name + "=";
6 var alen = arg.length;
7 var clen = document.cookie.length;
8 var i = 0;
9 while (i < clen) {
10 var j = i + alen;
11 if (document.cookie.substring(i, j) == arg)
12 return getCookieVal (j);
13 i = document.cookie.indexOf(" ", i) + 1;
14 if (i == 0) break;
15 }
16 return null;
17 }
18 function SetCookie (
19 name, value, expires, path, domain, secure) {
20 document.cookie = name + "=" + escape (value) +
21 ((expires) ? "; expires=" + expires.toGMTString() : "") +
22 ((path) ? "; path=" + path : "") +
23 ((domain) ? "; domain=" + domain : "") +
24 ((secure) ? "; secure" : "");
25 }
26 function getCookieVal (offset) {
27 var endstr = document.cookie.indexOf (";", offset);
28 if (endstr == -1)
29 endstr = document.cookie.length;
30 return unescape(document.cookie.substring(offset, endstr));
31 }
32 function schreibeCookie() {
33 haltbarDatum = new Date(2007,11,31,1,0,0);
34 document.cookie = SetCookie(
35 "user", document.mF.id.value, haltbarDatum);
36 document.cookie = SetCookie(
37 "pw", document.mF.pw.value, haltbarDatum);
38 }
39 function leseCookie() {
40 wert = GetCookie("user");
41 if(wert != null) document.mF.id.value=wert;
42 wert = GetCookie("pw");
43 if(wert != null) document.mF.pw.value=wert;
44 }
45 </script></head><body onload="leseCookie()">
46 <form name="mF" onsubmit="schreibeCookie()">
47 <table>
48 <tbody><tr><td>Userid</td>
49 <td><input name="id"></td></tr>
50 <tr><td>Passwort</td>
51 <td><input name="pw" type="password"></td></tr>
52 <tr><td><input value="Ok" type="submit"></td>
53 <td> <input value="Abbruch" type="reset"></td></tr>
54 </tbody></table>
55 </form>
56 </body></html>
a) was gibt ,,document.cookie.length,, zurück.
von was wird da die länge zurückgegeben ?
b) kann man anstelle von ,,offset,, auch ein anderes wort hinschreiben ? ist doch nur ein beliebiges wort ?
c) kann man theoretisch alle variablen mit ,,var,, davor schreiben ?
d) was wird aus ,,document.cookie.substring(0,5),, zurückgegeben ?
ich weiss ,dass es eine extrahierte zeichenkette zurückgibt, aber welche ?
hier wird z.B konkret ,,schiff,, extrahiert : var begriff = "dampfschifffahrt"
var teil = begriff.substring(5,11)
e) was ist ,,document.cookie,, in zeile 20 ? der schreibweise nach eine variable,oder ?
f)was wird in zeile 13 zurückgegeben ? was bedeutet " " ? wird da ermittelt an wie vielter stelle das " " vorkommt ?
g) in zeile 14 wird die while schleife abgebrochen wenn ,,i,, gleich ,,0,, ist , richtig ?
( da ist dann die variable in zeile 13 gemeint ? )
h) ,,function GetCookie,, und ,,function SetCookie,, sind nur vorgaben,so eine art schablone, mit denen dann
die anderen funktionen arbeiten, richtig ?
i) sind ,,GetCookie,, und ,,SetCookie,, nur beliebige funktionsnamen?
j) was gibt ,,function GetCookie,, in der webseite ,als ergebnis der funktion, zurück ?
danke
Antwort schreiben
Antwort 1 von E-worker vom 25.10.2019, 07:47 Options
a) Länge des Strings, der als Cookie gespeichert ist
b) jeder andere zulässige Variablenbezeichner tuts genau so
c) lokale Variablen sollten immer mit var deklariert werden!
d) die ersten 5 Zeichen
e) ein Unter-Objekt von document
f) Stelle des nächsten Leerzeichens, Suche beginnend ab i
g) ja (ja)
h) ???
i) ja
j) den Wert des Cookies dessen Bezeichnung du als Parameter übergeben hast
Antwort 2 von karim vom 26.10.2019, 15:35 Options
zu antwort a) von welchem wort oder etwas , wird die zeichenlänge angezeigt ? von was genau ?
damit ich es nachvollziehen kann.
zu c) das heisst , dass man alle variablen mit var davor schreiben kann ?
zu d) ja, das ist mir schon klar, aber von was die ersten 5 zeichen ?
zu h) ich meine das so: z.B. a + b = c , dann steht unten a = 1, b = 2, daraus folgt : 1 + 2 = c , anstelle
von a + b kommt 1 + 2 .
genau so mit ,,function GetCookie,, und ,,function SetCookie,, , da wird z.B. die stelle von ,,name,,
mit ,,user,, besetzt, und so weiter !?
zu i ) sind das nicht freie funktionen fürs cookie management, die ein programmierer namens
Bill Dortch entwickelt hat. ,,SetCookie (name,value,expires,path,domain,secure),,
und ,,GetCookie (name),, zum setzen und lesen von cookies . sind diese funktionsnamen nicht
nicht irgendwie reserviert ?
zu j ) ja, aber was konkret ? und in welcher zeile ist dieser wert ?
danke
Antwort 3 von eworker vom 26.10.2019, 23:46 Options
a) die Länge des Cookies, die der Browser irgendwo für diese Seite gespeichert hat. Für den Browser ist ein Cookie eine Zeichenkette, die somit eine bestimmte Länge hat.
c) siehe
SelfHTML, suche nach globalen und lokalen Variablen.
d) vom Cookie (siehe a)
h) bleibt bei ???
i) die sind nicht reserviert, du kannst die auch abrakadabra() und simsalabim() nennen
j) Cookies sind als Wertepaare aufgebaut, du übergibst den Namen und erhältst den Wert, der unter diesem namen gespeichert ist.
Zitat:
habe noch keine antwort
habe Verständnis, dass selbst die Stammuser solch eines Forums noch ein Privatleben haben.
Antwort 4 von karim vom 27.10.2019, 01:39 Options
alles klar
danke
Antwort 5 von karim vom 29.10.2019, 01:07 Options
antwort zu a) ist damit die länge des wortes ,,cookie,, gemeint, wären dann 6 zeichen ?
zu i) wie kann man denn noch, cookies auslesen und setzen ?
muss (name,value,expires,path,domain,secure) immer beim setzen eines cookies stehen,
oder kann man das weglassen ?
zu j) welcher name ist das im script ?
zu h) ich meine,wenn da steht ,,function GetCookie (name), wird in zeile 40 ,,user,, anstelle von ,,name,, gesetzt.
damit ist ,,function GetCookie (name),, eine art vorgabe !?
k) ich verstehe das nicht in zeile 20.
wird zu ,,document.cookie,, ein wert zugwiesen ?
wird da auf etwas zugegriffen oder wird etwas gesetzt?
ich versuchs mal selbst zu erklären:
es wird also als erstes auf document zugegriffen dann aufs cookie (auf den inhalt des cookies oder den namen der cookie-datei),
dann durch das ist-gleich wird ein wert zu etwas zugewiesen, oder wie ? versteht ihr mein problem ?
l ) was bedeutet escape (value) in zeile 20 ?
m) von zeile 21 bis 24 sind das doch verkürtzte if-else entscheidungen ( ?: ),dazu braucht man doch
einen booleschen wert. wie kann denn ,,(expires),, einen booleschen wert liefern, und damit auch
(path), (domain) und (secure). ?
n) kann man nicht in zeile 16 anstatt ,,return null,, , etwas mit ,,document.write(null),, schreiben?
mit document.write kann man ja auch etwas reinschreiben ?
o) was muss geschehen , damit ,, return null,, ausgeführt wird ?
p) ich verstehe nicht den zusammenhang in der funktion ,,GetCookie (name),, ?
danke im voraus
Antwort 6 von Marie vom 29.10.2019, 03:35 Options
Hallo Karim,
Du verstehst nicht nur nicht den Zusammenhang, Du hast doch überhaupt nicht verstanden was Cookie (name) ist, obwohl eworker dir das zweimal deutlich erklärt hat.
Schau doch mal was Du zu a fragst und lies oben die bereits mehrfach gegebenen Antworten mal ordentlich durch, da steht wirklich absolut deutlich, dass da keineswegs die Länge 6 des Wortes Cookie gemeint ist. Wenn Du nicht ordentlich die Antworten liest kann Dir keiner Deine Fragen beantworten.
Gruß marie
Antwort 7 von E-Worker vom 29.10.2019, 07:26 Options
Antwort 8 von E-Worker vom 29.10.2019, 08:01 Options
insbesondere das
Galileo-Openbook bietet hier eine ausführliche Erklärung zu Cookies (bei SelfHTML kommen sie ein bisschen kurz, das JavaScript-Kapitel dort ist aber sowieso insgesamt veraltet und überarbeitungsbedürftig), lies also einfach mal das Kapitel
Cookies mit JavaScript, dort entsprechen die vorgeschlagenen Funktionen auch denen, die du selbst irgendwo gefunden hast.
Antwort 9 von karim vom 04.11.2019, 16:25 Options
ich hab mir die inhalte von den galileo-seiten durchgelesen. mir ist trotzdem einiges nicht genau klar.
1) wenn da steht: der wert von ,,document.cookie,, ist "Autor=Christian+Wenz" , wo ist der name ?
ist das ,,Autor=,, ? und ist ,,Christian+Wenz,, der wert ? was bedeutet das ist-gleich zeichen ?
2) der befehl ist : document.cookie = "Verlag=Galileo"
was soll da ausgeführt werden ? ist ,,Verlag=Galileo,, der wert, oder wie ?
3) sind cookies das einzige thema bei JS, wofür grösstenteils andere regeln gelten,als
für alles andere bei JS ?
4) durch welchen befehl weiss der interpreter, dass er ein cookie setzen oder lesen soll ?
denn zum beispiel ,,SetCookie,, und ,,GetCookie,, sind doch keine reservierten wörter,
durch die der browser weiss, dass er ein cookie setzen oder lesen soll. Da könnte auch
,,MilchCookie,, stehen.
verstehe ich nicht ganz ?!
5)wenn da steht ,,domain=.galileo-press.de,, ,ist dann das cookie nur für die webseite ,,www.galileo-press.de,, gültig ?
darf dan nur diese webseite die cookies setzen oder lesen ? warum wird da von servern geredet ?
6) ich finde bei mir auf dem PC , die cookie-datei nicht, um zu sehen wie sowas aussieht.
habe firefox 2.
7) warum steht bei folgendem Bsp. ,,new Date(),, in klammern ?
setCookie("Autor", "Christian Wenz", null, (new Date()).getTime() + 1000*3600*24).toGMTString())
a) ,, Autor,, ist doch der name und ,,Christian Wenz,, der wert ?
b) wo schreibt ,,.toGMTString (),, das datum hin ?
wenn ich es wieder auslesen möchte wo muss ich dann suchen ?
c)im beispiel wird also das aktuelle datum extrahiert, dann mit ,,get Time(),, die zeit , was wird danach genau gemacht ?
wird da gerechnet : zeit + 1000*3600*24 ,oder wie ?
8) könnt ihr mir z.B. die zeile 3 in folgendem Bsp. erklären, was da nacheinander getan wird ?
1 function setCookie(name, wert, domain, expires, path, secure){
2 var cook = name + "=" + unescape(wert);
3 cook += (domain) ? "; domain=" + domain : "";
4 cook += (expires) ? "; expires=" + expires : "";
5 cook += (path) ? "; path=" + path : "";
6
7 cook += (secure) ? "; secure" : "";
8 document.cookie = cook;
9 }
9) wenn irgendwo steht ,,document.cookie,, , dann heisst das, dass dann immer ein cookie
gesetzt wird, richtig ?
10) meint man mit cookie-server, den server als tower(hardware) , oder was anderes ?
Antwort 10 von karim vom 05.11.2019, 18:56 Options
hallo,
ich habe oben ein paar fragen.
vielleicht könnte mir jemand antwort geben.
danke
Antwort 11 von E-worker vom 06.11.2019, 07:56 Options
erst mal: nicht drängeln. OK?
1 name wäre hier
Autor2 ein cookie wird gesetzt, dessen Inhalt aus dem Wertepaar verlag und galileo besteht
3 welche Regeln meinst du?
4 durch
document.cookie = x
, siehe 9
5 ein cookie gehört immer zum aktuellen Dokument
6 lesen:
www.firefox-browser.de/wiki/Cookies7 um das neue Date-Objekt gleich verwenden zu können und es nicht erst in einer Variablen zu speichern
8 wenn die Variable
domain
gesetzt ist wird die Variable
cook
um das Wort
Domain und den Wert der Variablen
domain
ergänzt. Siehe
Einfache Entweder-Oder-Abfrage9
Zitat:
Das Lesen eines Cookies funktioniert nach dem Schema x = document.cookie.
Das Schreiben eines Cookies funktioniert nach dem Schema document.cookie = x.
aus
SelfHTML10 ich kenne den Begriff nicht. Wo kommt der vor?
Antwort 12 von karim vom 06.11.2019, 16:06 Options
ich habe gedacht , ihr habt mich vergessen !?
nicht fur ungut
Antwort 13 von karim vom 09.11.2019, 01:58 Options
zu 1) was bedeutet da ist-gleich zeichen, gehört es auch zu autor ?
ist Christian+Wenz der wert ?
zu 2) was bedeutet das ist-gleich zeichen zwischen verlag und galileo ?
zu 3) na ja ,zum Bsp., wenn da steht document.cookie = "meincookie" ist das nicht dasselbe wie
z.B., a = "2"
oben wird ein cookie gesetzt und unten wird der variablen a ein wert zugewiesen , bei gleicher schreibweise ,
zwei unterschiedliche bedeutungen.
zu 5 ) ok, aber ist wohl nicht die antwort auf diese frage .
wenn da steht ,,domain=.galileo-press.de,, ,ist dann das cookie nur für die webseite ,,www.galileo-press.de,, gültig ?
darf dan nur diese webseite die cookies setzen oder lesen ? warum wird da von servern geredet ?
zu 7) ok, verstehe ich aber nicht ganz, komm durcheinander. vielleicht geht es etwas deutlicher ?
welche regel wird da verwendet ?
zu 9 ) wenn irgendwo steht ,,document.cookie,, , dann heisst das, dass dann immer ein cookie
gesetzt wird, richtig ? ja oder nein ?
zu 10 ) er kommt hier vor : (zeile 2)
. Ein Domainname muss hier mindestens zwei Punkte enthalten, deswegen steht ein Punkt vor firma.de. Einige Leute
sind auf die Idee gekommen, einfach die Cookies mehrerer (unterschiedlicher) Seiten auf einem zentralen Cookie-Server zu speichern.
Beim Netscape Navigator gibt es eine Option, die dies vereitelt (Bearbeiten N Einstellungen N Erweitert N Nur an den ursprünglichen
Server zurückgesendete Cookies akzeptieren). Pro Domain werden übrigens nur 20 Cookies akzeptiert, danach werden alte Cookies
gelöscht bzw. überschrieben.
11 ) ich verstehe das nicht ganz : x = document.cookie.
12 ) es gibt keine leerzeichen bei cookies, richtig ?
Antwort 14 von noframes vom 09.11.2019, 07:43 Options
1/2 = trennt Name und Wert
3 du weist in jedem Fall einem Objekt einen Wert zu.
5 versuch deine Frage anders zu formulieren
7 für
var heute = new Date();
var Stunde = heute.getHours();
kannst du abgekürzt schreiben
var Stunde = (new Date()).getHours();
wenn du heute sonst nicht brauchst
9 gesetzt oder gelesen
10 das sind virtuelle Server, sprich einfacher Webspace. Insgesamt spielt dies keine Rolle
11 Cookie wird gelesen und in Variable x gespeichert zur weiteren Verarbeitung
12 doch, gibt es. schau dir mal welche an. Geh dazu auf irgendeine Seite, die Cookies nutzt (google, Wikipedia, Supportnet) und tipp in die Adresszeile des Browsers folgendes ein:
javascript:alert(document.cookie)
dann erhältst du alle Cookies die die Seite gesetzt hat zum Anschauen
Antwort 15 von karim vom 12.11.2019, 22:29 Options
1) wenn da steht : document.cookie = "Haus" , ist dann ,,Haus,, der wert ?
2) wenn da steht : if (document.cookie != " "), was meint man mit document.cookie, den wert oder den namen ?
3) Besucher="";
if (document.cookie !="")
{
Besucher = document.cookie.split("_")[1]
}
a) ,,Besucher = " ",, ist eine variable in der anführungszeichen gespeichert sind, richtig ?
b) was wird in zeile 4 gemacht ?
zu 5) die frage ist doch wohl nicht so schwer ? möchte nur wissen ,wenn da steht
,,domain=.galileo-press.de,, ,ist dann das cookie nur für die webseite ,,www.galileo-press.de,, gültig ?
darf dan nur diese webseite die cookies setzen oder lesen ?
zu 7) setCookie("Autor", "Christian Wenz", null, (new Date()).getTime() + 1000*3600*24).toGMTString())
Ok, der anfang ist klar , aber kann man auch ,,new Date (),, ohne klammern schreiben ? warum müssen da klammern sein ?
folgende fragen unbeantwortet :
a) ,, Autor,, ist doch der name und ,,Christian Wenz,, der wert ?
b) wo schreibt ,,.toGMTString (),, das datum hin ?
wenn ich es wieder auslesen möchte wo muss ich dann suchen ?
c) im beispiel wird also das aktuelle datum extrahiert, dann mit ,,get Time(),, die zeit , was wird danach genau gemacht ?
wird da gerechnet : zeit + 1000*3600*24 ,oder wie ?
8 ) ich habe gesehen das ,, new Date () ,, auch ohne klammern stehen kann ,, new Date,, ? wann kommen klammern hinzu und wann nicht?
9) wann benutzt man immer ,,new,, , benutzt man es nur in verbindung mit ,,Date,,?
Antwort 16 von Sisyphos vom 13.11.2019, 00:05 Options
1) nein, dann ist "Haus" der gesamte Inhalt des Cookies. Nur = innerhalb der Zeichenkette, die den Cookie darstellt, sind gemeint
2) weder noch, sondern ob überhaupt was als Cookie gespeichert wurde
3)
a) nein! besucher enthält eine leere Zeichenkette, quasi ein Wort mit 0 Buchstaben.
b) der Wert wird überschrieben mit dem 2ten Element eines Arrays, das entsteht, wenn man auf die Cookie-Zeichenkette die Funktion split anwendet. Lies dazu bei
split() nach!
zu 5) die Frage ist hinreichend in Antwort 12 beantwortet! Was im Cookie steht spielt einfach keine Rolle dabei.
zu 7) verwende einfach die längere Syntax, bis du dir genügend Kenntnisse über Objekte angeeignet hast
a) ja
b) es wird als soundsovieltes Argument an die Funktion übergeben
c) natürlich ist das eine Rechnung. Was sollte das sonst sein? zeit wird um 1000*3600*24 erhöht. Tipp: das ergibt exakt die Anzahl der Millisekunden eines Tages
8 ) siehe 7 - ich kann hier kein JavaScript-Objekt-Tutorium schreiben
9)
new wird benutzt um ein neues Objekt zu definieren.
Antwort 17 von karim vom 15.11.2019, 21:51 Options
zu 2) wenn da steht ,,document.cookie,, dann meint man damit den gesamten inhalt, also name, wert, expires , path,...), richtig ?
zu 3) ... und wenn man anführungsstriche theoretisch speichern möchte, wie macht man das ? z.b. ,,besucher = "" ,,( also,ohne leerzeichen zwischen
den strichen) , denn so ,,besucher = " " ,geht es ja nicht.
b) warum wird da ein wert überschrieben, ich dachte wenn da steht document.cookie, ist das der gesmte inhalt des
cookies, also, name, wert, expires ... ?
c) woher kommt das array her ? kommt es immer automatisch wenn man split anwendet ?
d) was ist das zweite element des arrays ?
zu 5 ) ... das heisst, dass jede webseite auf das cookie zugreifen kann , auch wenn da im cookie steht ,,domain=.galileo-press.de,, !
wie stellt man dann sicher, dass nur bestimmte webseiten auf das cookie zugreifen können, das macht man doch mit domain, oder ?
zu 7) b) was heisst konkret soundsovieltes argument ?
Antwort 18 von Sisyphos vom 15.11.2019, 22:17 Options
2) ja
3) besucher='""'
b) warum und wozu weiß ich nicht, wenn du einer Variablen einen neuen Wert zuweist wird der alte überschrieben!
c) bitte folge dem Link
d) das Array-Element mit dem Index 1. Was in deinem Code dabei raus kommt weiß ich nicht.
5) im Gegenteil! Das Cookie ist an Dokumente der betreffenden Domain gebunden. Es ist dafür aber Sch...egal was im Cookie steht.
7) 4tes
Bitte arbeite den gesamten Abschnitt JavaScript bei SelfHTML sowie den zu Cookies bei Galileo nochmals sorgfältig durch. Du stellst hier Fragen, die darauf schließen lassen, dass du deutliche Wissensdefizite in der JavaScript-Programmierung hast. Bitte erarbeite dir erst einmal ein solides Grundwissen in JavaScript an, bevor du dich weiter in die Cookie-Problematik verrennst.
Antwort 19 von karim vom 16.11.2019, 18:07 Options
... habe ich doch , es fällt mir leichter es so zu verstehen, wenn ich genau das frage was ich nicht genau verstehe.
und auf einige fragen finde ich halt da keine antwort .
danke
Antwort 20 von karim vom 16.11.2019, 18:24 Options
ich lerne und parallel dazu stelle ich fragen .
nichts für ungut