Jupiter: Wie richte ich einen zweiten Cookie ein?

Hallo Leute!
 Ich habe nun das ganze Forumarchiv durchsucht, doch keine richtige Antwort finden können. Vielleicht ist hier jemand so nett und in der Lage, mir zu helfen:

Auf meiner Homepage besteht schon ein Cookie meines Forums. Ich möchte jetzt einen zweiten Cookie anlegen, der speichert von wo ein User herkommt, um ihn dort wieder nach Verlassen meines Forums hinzuschicken.
Ich habe mir das so gedacht, daß ich mit: document.cookie = document.referrer; dort in den Cookie schreibe. Das funktioniert auch. Doch leider schreibt der in meinen Forumcookie.
 Ich brauche also einen Zweitcookie, da ich den ersten nicht umbauen will/kann!
1.) Wie erzeuge/schreibe/lese ich einen Zweitcookie?
2.) Wie lese ich aus dem Cookie nur die Stamm-URL aus? Statt http://www.bladibla.de/test/index.html also nur http://www.bladibla.de???

Danke!

MLG

Kai

  1. Hi,

    Ich habe mir das so gedacht, daß ich mit: document.cookie = document.referrer; dort in den Cookie schreibe. Das funktioniert auch.

    schade. Solche Dinge sollten eigentlich nicht funktionieren - denn nur dann werden sie gelassen.

    Ein Cookie besteht insbesondere aus "Name=Wert", nicht einfach nur aus "Wert", denn so lässt er sich nicht identifizieren. Zu weiteren nützlichen oder evtl. sogar notwendigen Angaben siehe bitte SelfHTML.

    1.) Wie erzeuge/schreibe/lese ich einen Zweitcookie?

    Exakt wie den ersten, nur mit anderem Namen und danach. Denk beim Setzen bitte an eine Kodierung des Wertes (genauer gesagt: von Wert _und_ Name; der Name sollte jedoch sinnvollerweise so gewählt sein, dass eine Kodierung unnötig ist).

    2.) Wie lese ich aus dem Cookie nur die Stamm-URL aus? Statt http://www.bladibla.de/test/index.html also nur http://www.bladibla.de???

    Beim Auslesen erählst Du alle für Deinen Bereich gültigen Cookies als "; "-getrennte Liste von "Name=Wert"-Paaren. Diese kannst Du mit handelsüblichen Stringoperationen analysieren.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Keine Angst. Das war nur ein Beispiel für die Befehle, die ich zu verwenden gedenke. In der Selfhtml-Seite habe ich natürlich auch alle Cookie-Erklärungen gelesen. Ich als Cookieneuling dachte, daß man einzelne Cookies einzeln abrufen kann. Aber wenn nur der Inhalt aller Cookies am Stück auslesbar ist, dann bastele ich mir jetzt was, womit ich nur meine URL auslesen kann.
       Der Bereich der Stringoperationen ist groß! Gibt es dort einen Bereich in dem ich suchen sollte oder muß ich mir da was komplett eigenes basteln, um die URL zu kappen?

      Danke, Cheatah für Deine Antwort!

      MLG

      Kai

      1. Hi,

        Keine Angst. Das war nur ein Beispiel für die Befehle, die ich zu verwenden gedenke. In der Selfhtml-Seite habe ich natürlich auch alle Cookie-Erklärungen gelesen.

        das freut mich zu hören :-)

        Ich als Cookieneuling dachte, daß man einzelne Cookies einzeln abrufen kann.

        Das geht (leider?) genauso wenig, wie URL-Parameter einzeln auszulesen. Allerdings wird eine Analyse-Funktion für beide Anwendungen sehr ähnlich aussehen.

        Aber wenn nur der Inhalt aller Cookies am Stück auslesbar ist, dann bastele ich mir jetzt was, womit ich nur meine URL auslesen kann.

        Wenn Dein Resultat eine gewisse Allgemeingültigkeit hat wäre es sehr nett von Dir, den Code zu posten. Sicher haben noch andere das gleiche Bedürfnis wie Du; diese können dann Deine Lösung im Archiv finden und weiterverwenden.

        Der Bereich der Stringoperationen ist groß! Gibt es dort einen Bereich in dem ich suchen sollte oder muß ich mir da was komplett eigenes basteln, um die URL zu kappen?

        Jener Bereich ist allgemein gehalten, nicht auf ein spezielles Problem beschränkt. Überlege Dir, was für Funktionen (im Sinne von Arbeitsschritten) Du brauchst, um die Cookies einzeln im Zugriff zu haben; suche dann, ob Du etwas passendes findest. Was Du vorliegen hast, habe ich ja bereits beschrieben; was Du haben möchtest, musst Du Dir selbst definieren ;-) und der Rest sollte eine Fingerübung sein.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Soweit ist das klar nur die Befehle reichen mir irgendwie nicht aus. Mit split() und so muß ich angeben nach wievielen Zeichen der Cut kommt. Doch der Beginn des Cookies variiert halt auch in der Länge!
           Deshalb mein Beispiel:
          Das ist der Inhalt meines Cookies (braucht keiner zu kopieren, ist sowieso abgeändert!!!):
          ivoldpass_hash=73452450166af9d3a5eea28382b037cb5020d; ivoldanonlogin=351; ivoldfread_6=1041256865468; ivoldfread_1=104186475486; ivoldfread_3=1041868937687; ivoldfread_2=1041373866888; ivoldmember_id=25; ivoldsession_id=754cf44749be14751d8e95347864f209999; ivoldtopicsread=a%253A6%2557675347347553A%257Bi%253A156; backhop=http://www.bladibla.com/main.html

          Ich brauche jetzt ein Skript, daß zuerst den Cookie abscannt bis er "backhop=" findet, dann alles bis vor den dritten "/" (also http://www.bladibla.com) in eine Variable speichert und der Rest ist egal.
           Variieren tut:
          1.) Die Länge der Cookies vor backhop
          2.) Die URL, die ausgegeben werden soll!

          Hat noch jemand einen Tip für den speziellen Fall? Danke!

          1. Hi,

            Mit split() und so muß ich angeben nach wievielen Zeichen der Cut kommt.

            Du meinst substr() bzw. substring(). Bei split() gibst Du den Trenner an - dies brauchst Du zwei mal, zunächst um alle Cookies voneinander zu trennen, und pro Cookie erneut zur Trennung von Name und Wert.

            Doch der Beginn des Cookies variiert halt auch in der Länge!

            Du kennst aber die Position des Endes, wenn Du sie mit einer anderen Stringfunktion ermittelst ;-)

            Das ist der Inhalt meines Cookies

            Genauer gesagt sind es zehn Cookies. Dass die Menge pro Host begrenzt ist, ist Dir hoffentlich bewusst?

            Ich brauche jetzt ein Skript, daß zuerst den Cookie abscannt bis er "backhop=" findet,

            Welche Stringfunktion brauchst Du hierzu?

            dann alles bis vor den dritten "/"

            Hier brauchst Du die gleiche Funktion ein paar Male (evtl. geschachtelt),

            (also http://www.bladibla.com) in eine Variable speichert

            und hier eine der beiden Substring-Funktionen.

            und der Rest ist egal.

            Der Code ist damit dann natürlich nicht mehr wirklich allgemeingültig :-)

            Hat noch jemand einen Tip für den speziellen Fall? Danke!

            Es ist leichter als Du glaubst ;-)

            Cheatah

            --
            X-Will-Answer-Email: No
            1. Aha, das war der wichtige Hint. Ich mache einfach in Perl weiter! Da geht mehr! index ist was feines z.B.!
               Danke! Man muß mich nur in die richtige Abteilung schubsen, dann kapiere ich das schon alleine. Selfhtml ist je recht vielseitig und hilft fast immer...

              1. Hi,

                Aha, das war der wichtige Hint. Ich mache einfach in Perl weiter! Da geht mehr!

                serverseitige Techniken sind clientseitigen prinzipiell vorzuziehen; nicht immer ist dies jedoch möglich. Wenn es bei Dir geht: Umso besser, aber suche Dir doch einfach ein hilfreiches Perl-Modul... ;-)

                index ist was feines z.B.!

                Übungsaufgabe: Suche das JavaScript-Äquivalent :-)

                Danke! Man muß mich nur in die richtige Abteilung schubsen, dann kapiere ich das schon alleine.

                Dann bist Du bei mir an der richtigen Adresse, das ist nämlich mein Spezialgebiet *g*

                Cheatah

                --
                X-Will-Answer-Email: No
                1. Antwort zur Übungsaufgabe: In JS wären da die Funktion match() und evtl. auch search() äquivalent!

                  Perl erscheint mir jedoch "sprachgewandter" und besser als JS. Ich fange jetzt mal an, zu basteln. Vielleicht in beiden Sprachen zum Vergleich!

                  Danke!

                  1. Hallo Meister!
                     Also meine JS-Version ist fertig und funktioniert! Juhu! War echt billig. Ich brauchte nur den Start-Tip! Danke!

                    <!--
                     document.cookie =  "backhop=" + document.referrer;
                    var anfang = document.cookie;
                     var grobposition = anfang.indexOf("http");
                     var grobadresse = anfang.substring(grobposition);
                     var position = grobadresse.indexOf("/",8);
                     var adresse = grobadresse.slice(0,position);
                     document.write(adresse);
                    //-->

                    In grobposition schreibt er an welcher Stelle das http anfängt.
                    HAckt dann alles vor http ab und schreibt es in grobadresse.
                    Dann sucht er den ersten "/" nach "http://" und hackt da ab!
                    Bumm fertich!

                    MLG

                    Kai

                  2. Hi,

                    Antwort zur Übungsaufgabe: In JS wären da die Funktion match() und evtl. auch search() äquivalent!

                    nein, das wäre in Perl eher m//, also Regular Expression bezogen. Such noch mal :-)

                    Perl erscheint mir jedoch "sprachgewandter" und besser als JS.

                    Alles ist relativ. In Perl ist es deutlich schwieriger, mit Objekten zu arbeiten.

                    Cheatah

                    --
                    X-Will-Answer-Email: No
                    1. Hast recht. Dürfte indexOf() sein! Habe ich auch benutzt!
                      Skript fertig und geht aber nicht richtig und ich verzweifele fast:

                      Ist bestimmt nur ein winziger Fehler, aber ich komme nicht drauf!
                      Mein Skript:
                       document.cookie =  "backhop=" + document.referrer;
                       var anfang = document.cookie;
                       var grobposition = anfang.indexOf("http");
                       var grobadresse = anfang.substring(grobposition);
                       var position = grobadresse.indexOf("/",8);
                       var adresse =  grobadresse.slice(0,position);
                       var ziel = "Homepage";
                       document.write(ziel.link(adresse));

                      Das spuckt als Link aber "GROBADRESSE" aus!

                      Wenn ich testweise in die vorletzte Zeile:
                      alert(adresse);
                      schreibe, dann geht der Link auf "adresse"!

                      WARUM? Bin ich zu doof??? Bitte um Hilfe! Kann ja nichts ernstes sein, oder?

                      Danke Dir schonmal!

                      MLG

                      Kai

                      1. Hi,

                        Hast recht. Dürfte indexOf() sein!

                        hajo, so isch des! :-)

                        document.write(ziel.link(adresse));
                        Das spuckt als Link aber "GROBADRESSE" aus!

                        Wenn ich testweise in die vorletzte Zeile:
                        alert(adresse);
                        schreibe, dann geht der Link auf "adresse"!

                        Vielleicht liegt's daran, dass ich noch nie link() benutzt habe (Spezialfunktionen im Core einer Sprache, die sich leicht aus anderen Funktionen kopieren lassen, halte ich für absurd), aber ich würde einfach nur den HTML-Code schreiben, den ich haben möchte.

                        Cheatah

                        --
                        X-Will-Answer-Email: No
                        1. Huhu!
                          Danke!

                          Meinst Du also in den HTML-<a href... per javascipt die variable importieren?