Forum: PC-Programmierung Cookie Zugriff


von Stephan (Gast)


Lesenswert?

Hi ich mache mit folgendem Code in meinem Fenster eine Form auf und 
sende das Formular ab. Glücklicherweise wird das richtige Cookie 
gesendet, aber nun müßte ich das Cookie erweitern ist das irgend wie 
möglich?
Ich komm einfach nicht an das Cookie. Wie werden unter FF die Cookies 
den Seiten zugeordnet? (URL?)
1
     form = tWindow.document.createElement("form");
2
     form.method = "POST";
3
     form.action = newLink;  // <- meine neue url mit paras vom formular
4
     form.target = "_blank";
5
     tWindow.document.body.appendChild(form);
6
     form.submit();

auf meiner lokalen Seite (Lw: c, im FF lokal geöffnet) wird das Formular 
ausgefüllt und dort nutze ich keine Cookies!
lt. Tante G++++ kann man nur auf Cookies zugreifen die man erstellt hat, 
aber wie wird dann beim 'Submit' des Formulars das richtige Cookie 
gesendet?

Wieso macht man das eigentlich:
Früher wurden nur die Parameter gesendet per url, nun werden die Daten 
per url + cookie geschickt!?! Hat das einen Sinn? Außer mir das Leben 
schwer zu machen.
Die Cookie Bearbeitung habe ich aus der org. HP kopiert.

Danke.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Cookies werden für gewöhnlich nirgendwohin gesendet, sondern von 
Javascript vor Ort (also im Browser des Clienten) gelesen und irgendwie 
ausgewertet, z.B. um Zeilen eines Formulares (z.B. Anmledeformular) 
vor-auszufüllen.

In gewisser Weise kann der Server an der Reaktion des Clienten natürlich 
feststellen, was im Cookie steht, aber die primäre Idee ist es , vor Ort 
eine Art Gedächtnis anzulegen.

Ein Cookie hat einen Namen, ein Gültigeits- bzw. Verfallsdatum und einen 
Wert. Geschrieben wird er per Javascript. Gelesen werden kann er per 
Javascript (also im Browser) immer nur im Kontext der Domain, in der er 
geschrieben wurde (ist eine Sicherheitsmaßnahme im Browser). Von 
Programmierfehlern oder Hacks mal abgesehen, kann also der Code in einer 
Google-Seite keinen Cookie lesen, den Code aus einer Amazon-Seite 
angelegt hat ...

: Bearbeitet durch User
von broesel (Gast)


Lesenswert?

Frank Esselbach schrieb:
> Cookies werden für gewöhnlich nirgendwohin gesendet, sondern von
> Javascript vor Ort (also im Browser des Clienten) gelesen...

Da Cookies (1994) schon vor JS (1995) eingeführt wurden, können die 
Dinger auch mit reinen HTTP-Methoden geschrieben und gelesen werden.
https://en.wikipedia.org/wiki/HTTP_cookie#Setting_a_cookie
https://tools.ietf.org/html/rfc6265

In JS ist die document.cookie Eigenschaft amwendbar.
http://de.selfhtml.org/javascript/objekte/document.htm#cookie

von Freddie (Gast)


Lesenswert?

Frank Esselbach schrieb:
> Cookies werden für gewöhnlich nirgendwohin gesendet, sondern von
> Javascript vor Ort (also im Browser des Clienten) gelesen und irgendwie
> ausgewertet,

Selten so einen Blödsinn gelesen.

Selbstverständlich werden Cookies in aller Regel zum Server gesendet.

Der Hauptgrund für Cookies ist schlicht, daß der Server stateless sein 
kann, weil der Client den Zustand, der sonst auf dem Server gehalten 
würde, bei sich ablegt und beim Request mitschickt.

von Stephan (Gast)


Lesenswert?

Hi,

Freddie so sehe ich das hier auch.
So wie kann ich die Informationen verändern, erweitern?

Ich hab mal von broesel aus einen Link die Zeile kopiert:
1
http://bank.example.com/withdraw?account=bob&amount=1000000&for=mallor

bei mir sind das nur Bild-Datien, aber ist so gesehen das gleiche.
Seit kurzer Zeit erwartet der Server nun die Paras 'amount' und 'for' 
zusätzlich im cookie!?! (mit Wireshark getestet)

Wie geht das und wie werden die Cookies der Web-Site zugeordnet?
Denn von meiner Web-Site komme ich nicht so einfach ans Cookie der 
Bilder-Seite! Oder baue ich mir das Cookie selber auf(kein Problem), 
aber wie bekomme ich es hin, das dies auch beim Senden des Formulars 
abgeschickt wird und nicht das alte!?!?!

Sorry für die Dummen Fragen, aber bin nur Anfänger.

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Sorry für die Dummen Fragen, aber bin nur Anfänger.

dann fang erst mal an, die Doku zu lesen

http://de.wikipedia.org/wiki/HTTP-Cookie

steht eigentlich alles wichtige drin.

von Stephan (Gast)


Lesenswert?

Also soweit bin ich schon: ich kann bei meiner HTML-Seite mit JS ein 
Cookie erstellen, schreiben, lesen und ablaufen lassen.
Alles lokal am Rechner -> wunderbar.

Aber wie ich an das Cookie der Bilder-Seite komme hab ich nicht 
gefunden.
1
   if (document.cookie) 
2
   {
3
      alert(document.cookie);
4
   }
5
   else 
6
   {
7
      alert("No Cookie!");
8
   }
liefert mir IMMER "No Cookie!" :-(

Vielleicht hab ich mich nicht richtig ausgedrückt, ich hab keinen Server 
nur eine kleine HTML-Seite mit etwas JS das mir einen Filter erstellt 
bzw eine Sortierung meiner Bilder auf dem Server abfragt. mehr nicht.
Seit einigen Tagen geht das nun nicht mehr, da der Server dieses doofe 
Cookie verändert hat. Eine Anfrage an den Support hat auch nichts 
gebracht!

von Stephan (Gast)


Lesenswert?

Vergessen: Wenn meine Cookies aktive sind, bekomme ich diese(meine) 
geliefert, wenn ich mit den obriegen Code das Cookie abfrage.

von Ahab (Gast)


Lesenswert?

Stephan schrieb:
> Aber wie ich an das Cookie der Bilder-Seite komme hab ich nicht
> gefunden.

An das Cookie kommst du nur mit Javascript, das auch von der 
Bilder-Seite geladen wurde.

=> Same Origin Policy.

Sonst könnte z.B. die Webseite hier dein Paypal-Session-Cookie auslesen, 
und damit dann Einkaufen gehen.

von Stephan (Gast)


Lesenswert?

@Ahab

ok, verstanden.

ABER:
>An das Cookie kommst du nur mit Javascript, das auch von der
>Bilder-Seite geladen wurde.

das gefällt mir.
1
function removeFilterCookie() {
2
  $.cookie('PicSize', null);
3
  $.cookie('PicAge', null);
4
}
5
6
function setFilterSizeCookie(Id, content) {
7
  setFilterCookie(Id, content, "PicSize");
8
}
9
10
function getFilterSizeCookie(Id) {
11
  return getFilterCookie(Id, "PicSize");
12
}

so das ist der Code von dem Server JS-File.
Kann ich mir damit was zusammen bauen????
1
     form = tWindow.document.createElement("form");
2
     form.method = "POST";
3
     form.action = newLink;  // <- meine neue url mit paras vom formular
4
     form.target = "_blank";
5
     tWindow.document.body.appendChild(form);
6
7
8
     // hier irgend wie das JS-File vom Server laden
9
     // die Daten (Cookies) erweitern und fertig
10
11
     form.submit();

von Stephan (Gast)


Lesenswert?

Ok extern einbinden kein Problem:
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
2
<html>
3
<head>
4
<title>Dokument mit externem JavaScript</title>
5
<script type="text/javascript" src="script.js"></script>
6
</head>
7
<body>
8
<h1>Dokument mit externem JavaScript</h1>
9
</body>
10
</html>

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.