alekz: Ein Cookie für diverse Domains

Hallo Forum,

ich stecke in einem kleinen Dilemma.
Mein Auftraggeber hat eine Website die unter ca 40 verschiedenen Top-Level-Domains (z.B. .de,.net,.com etc) erreichbar ist. Immer in der Form "name.tld".
Über die verschiedenen TLD werden verschiedene Versionen der Website (hauptsächlich sprachliche) verwaltet.

Nun zu dem Probelm. Beim Besuch der Website wird eine Session erzeugt und dazu ein Cookie beim User gespeichert.
Durch die verschienen Contents der Website kann es jetzt passieren, dass der User beim Klicken eines Links von der.de-Seite auf die .co.uk-Seite kommt.
Der Cookie der .de-Seite ist nun nicht mehr gültig, bzw. zugreifbar, korrekt?
Somit würde wieder eine neue Session erzeugt, oder?

Um aber diverse Daten vom User zu behalten (Warenkorb z.B.) brauche ich eine Session die sich über alle TLD-Versionen erstreckt.

Ich hatte überlegt, beim ersten Besuch einer der Websites per JavaScript PHP-Dateien von allen TLD-Seiten zu laden, die quasi für ihre TLD einen Cookie setzen, natürlich alle mit dem gleichen Identifier.

Ist das eine praktiable Lösung? Gibt es eleganteres?

Habe die Frage mal unter "Sonstiges" gepostet, da es Javascript, PHP und Browser betrifft :)

Bin auf eure Meinungen gespannt!

Alekz

  1. Hi,

    Nun zu dem Probelm. Beim Besuch der Website wird eine Session erzeugt und dazu ein Cookie beim User gespeichert.

    Das ist ungünstig, denn Cookies _dürfen_ nicht über Domaingrenzen hinweg funktionieren.
    Reich die Session über die URL weiter.

    Der Cookie der .de-Seite ist nun nicht mehr gültig, bzw. zugreifbar, korrekt?

    Richtig, und das ist gut so.

    Um aber diverse Daten vom User zu behalten (Warenkorb z.B.) brauche ich eine Session die sich über alle TLD-Versionen erstreckt.

    s.o. - halte die Session nicht über einen Cookie, sondern über einen Teil der URL.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Das ist ungünstig, denn Cookies _dürfen_ nicht über Domaingrenzen hinweg funktionieren.
      Reich die Session über die URL weiter.

      Der Cookie der .de-Seite ist nun nicht mehr gültig, bzw. zugreifbar, korrekt?

      Richtig, und das ist gut so.

      Korrekt, stimmt ich voll zu ;) Bereitet mir in diesem Falle aber ein Problem

      Um aber diverse Daten vom User zu behalten (Warenkorb z.B.) brauche ich eine Session die sich über alle TLD-Versionen erstreckt.

      s.o. - halte die Session nicht über einen Cookie, sondern über einen Teil der URL.

      Geht leider nicht, darf das nicht weiter spezifizieren wieso. Es muss mittels Cookie gemacht werden. (Er wird an einer späteren Stelle unbedingt benötigt)

      Es würde mir ja reichen, wenn ich einmal bei jedem ersten Besuch des User einen Cookie für jede TLD mit quasi unendlicher Lebensdauer generieren würde, dann kann ich den User später immer wieder erkennen.

      Any Ideas?

      Alekz

      1. Moin!

        s.o. - halte die Session nicht über einen Cookie, sondern über einen Teil der URL.

        Sprich: Gib die Session-ID bei Links, die die Domain wechseln, explizit mit in den Link. Links innerhalb der Site sind ja egal.

        Geht leider nicht, darf das nicht weiter spezifizieren wieso. Es muss mittels Cookie gemacht werden. (Er wird an einer späteren Stelle unbedingt benötigt)

        Dann geht's halt technisch nicht. Punkt.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Moin!

          nabend ;)

          Geht leider nicht, darf das nicht weiter spezifizieren wieso. Es muss mittels Cookie gemacht werden. (Er wird an einer späteren Stelle unbedingt benötigt)

          Dann geht's halt technisch nicht. Punkt.

          Och Sven, das war aber nicht die Tüfte-Aufgabe! :)

          Ich habe mal folgendes getestet:
          HTML-Dokument unter www.domain1.tld
          <html>
           <head>
            <title>Testseite</title>
            <script type="text/javascript" src="http://www.domain2.tld/test.php"></script>
           </head>
           <body></body>
          </html>

          Und das PHP-Script unter www.domain2.tld:
          <?

          if ($HTTP_COOKIE_VARS['testcookie'] == 'erfolgreich') {
                  echo "alert('Cookie war gesetzt!');";
          } else {
                  setcookie('testcookie','erfolgreich',time()+100000,'/','domain2.tld');
                  echo "alert('Cookie gesetzt !?');";
          }

          ?>

          Beim ersten Aufruf von www.domain1.tld gibt das Alter "Cookie gesetzt!?" aus.
          Beim zweiten Aufruf (F5) "Cookie was gesetzt!".

          Somit würde meine eigentliche Idee funktionieren. Ist nun eben die Frage, ob es da andere Möglichkeiten gibt?
          Stichwort HTTP-Header?

          Liebe Grüße Alkez

          1. Moin!

            Beim ersten Aufruf von www.domain1.tld gibt das Alter "Cookie gesetzt!?" aus.
            Beim zweiten Aufruf (F5) "Cookie was gesetzt!".

            Und wie lange, glaubst du, wird das zeitlich benötigen für diese vierzig oder wieviel Domains?

            Und das mit Pech bei jedem Request.

            Somit würde meine eigentliche Idee funktionieren. Ist nun eben die Frage, ob es da andere Möglichkeiten gibt?
            Stichwort HTTP-Header?

            HTTP-Header von wem?

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
            1. Und wie lange, glaubst du, wird das zeitlich benötigen für diese vierzig oder wieviel Domains?

              Da sich registrierte User auch mittel Häckchen einstellen können, dass sie immer eingelogged bleiben wollen, wäre die zeitliche Beschränkung ja egal ...

              Und das mit Pech bei jedem Request.

              Sobald ein Request kommt, bei dem kein Cookie gesetzt ist, werden wieder alle 40 anderen Cookies neu gesetzt, anders geht es ja leider nicht :(

              Somit würde meine eigentliche Idee funktionieren. Ist nun eben die Frage, ob es da andere Möglichkeiten gibt?
              Stichwort HTTP-Header?

              HTTP-Header von wem?

              Ich kenne mich mit HTTP-Headern nur im Bereich Cookie, Auth und Dateidownload aus, aber gibt es nicht irgendeinen Header, der vom Browser immer mitgeschliffen wird?
              Wenn ich mir das genau überlege, wäre das die Definition eines Cookies .... ;)

              Hm.

              Alekz

              1. Und das mit Pech bei jedem Request.

                Sobald ein Request kommt, bei dem kein Cookie gesetzt ist, werden wieder alle 40 anderen Cookies neu gesetzt, anders geht es ja leider nicht :(

                Die biblische Anzahl Cookies werden gesetzt?   ;)

              2. Moin!

                Und wie lange, glaubst du, wird das zeitlich benötigen für diese vierzig oder wieviel Domains?

                Da sich registrierte User auch mittel Häckchen einstellen können, dass sie immer eingelogged bleiben wollen, wäre die zeitliche Beschränkung ja egal ...

                Und das mit Pech bei jedem Request.

                Sobald ein Request kommt, bei dem kein Cookie gesetzt ist, werden wieder alle 40 anderen Cookies neu gesetzt, anders geht es ja leider nicht :(

                Doch, natürlich geht es anders.

                Die Frage ist doch: Du hast vierzig Sprachdomains. Warum muß jemand, der eine genutzte, wichtige Session in Betrieb hat, zum Sprachwechsel die Domain wechseln?

                Eliminiere das, und schon hast du kein Problem mehr mit den Cookies.

                Von neununddreißig Fremdseiten Cookies ranzuschleppen ist jedenfalls keine gute Idee. Dürfte mutmaßlich unter "Third Party Cookies" laufen, und die kann man in manchen Browsern sogar separat blocken.

                - Sven Rautenberg

                --
                "Love your nation - respect the others."
          2. Dann geht's halt technisch nicht. Punkt.

            Och Sven, das war aber nicht die Tüfte-Aufgabe! :)

            Ist doch ne prima Antwort. Du stellst eine Frage "Wie macht man das und das?" und die Antwort lautet "Geht nicht.". Besser geht es doch gar nicht!