glupto: Einstellungen als Cookie abspeichern

Hallo, ich möchte, dass der Nutzer meiner Seite Basiseinstellungen als cookie abspeichern kann, wenn er will, z. B. darüber, dass er auf einer Einstellungsseite ankreuzen kann, was er standardgemäß angezeigt bekommen will und was nicht, in welchem Umfang usw. Das soll in einem Cookie auf seinem Rechner hinterlegt werden. Ich habe erreicht, dass ich mit

<?php
setcookie("username","Daten",time()+(3600*24));
?>

<?php
$cookie = $_COOKIE["username"];
echo "Der Inhalt des Cookies: $cookie";
?>

einen Dummy "Daten" abspeichern konnte. Aber ich habe keine Ahnung, wie ich die Daten nach der Eingabe über input als cookie abspeichern und dann abfragen lassen kann, zumal ja die ganze cookie - Geschichte sich im header abspielen muss. Falls jemand ein paar Beispiele, Links usw. parat hat, wie man sowas sinnvoll managt, wäre ich dankbar.... Gruß glupto

  1. Hallo und guten Abend,

    Hallo, ich möchte, dass der Nutzer meiner Seite Basiseinstellungen als cookie abspeichern kann, wenn er will, z. B. darüber, dass er auf einer Einstellungsseite ankreuzen kann, was er standardgemäß angezeigt bekommen will und was nicht, in welchem Umfang usw. Das soll in einem Cookie auf seinem Rechner hinterlegt werden. Ich habe erreicht, dass ich mit

    <?php
    setcookie("username","Daten",time()+(3600*24));
    ?>
    

    Entweder Du speicherst die Daten als Cookie am Client, oder aber Du speicherst die Daten unter einem Token am Server als Sessiondaten, bzw, wenn sie langlebiger sein sollen, in einer Datenbank. Dieses Token wird dann in einem Cookie gespeichert am Client und bei jedem Request an die passende Domain im HTTP-Header mitgesendet. Bei PHP landet es dann in $_COOKIE. Und wenn Du session_start() benutzt, musst Du dich noch nicht einmal um das Cookie kümmern. Die Daten stehen dann automatisch beim nächten Request wieder in $_SESSION zur Verfügung.

    Aber das wusstest Du doch schon alles, oder? Dein Username ist mir jedenfalls nicht fremd ;-)

    Grüße
    TS

    1. Entweder Du speicherst die Daten als Cookie am Client, oder aber Du speicherst die Daten unter einem Token am Server als Sessiondaten, bzw, wenn sie langlebiger sein sollen, in einer Datenbank. Dieses Token wird dann in einem Cookie gespeichert am Client und bei jedem Request an die passende Domain im HTTP-Header mitgesendet. Bei PHP landet es dann in $_COOKIE. Und wenn Du session_start() benutzt, musst Du dich noch nicht einmal um das Cookie kümmern. Die Daten stehen dann automatisch beim nächten Request wieder in $_SESSION zur Verfügung.

      Aber das wusstest Du doch schon alles, oder? Dein Username ist mir jedenfalls nicht fremd ;-)

      Ehrlich gesagt nein, das wusste ich nicht alles. Ich weiß nicht mal, was ein token ist. Ich weiß nur, dass ich nicht erst eine Datenbank aufbauen und verwalten will. Ich will nur, dass meine Seite "individualisiert" werden kann. Also ich biete diverse feeds auf einer Seita an und möchte, dass die Leute unter "Einstellungen" eingeben können, welche der feeds und wieviel Zeilen davon sie angezeigt bekommen wollen. Und dass das dann immer gleich so aufgerufen wird, wenn sie meine Seite aufrufen (bzw. muss ich natürlich noch abfragen, ob sie nicht vielleicht Cookies deaktiviert haben). Also ich möchte beispielsweise, dass sie angeben können, ich möchte feed 1,4,7,8,9,12 und davon jeweils nur 7 Zeilen. Und beim nächsten Mal wird die Seite genau so angezeigt. Also, ich weiß z. B. nicht, wo ich genau abfrage, was im Cookie steht und wie ich diese Werte dann an den html-Part im body übergebe. Mir fehlen Beispiele, wie man sowas macht. Gruß und Dank glupto

      1. Hallo und guten Abend,

        Entweder Du speicherst die Daten als Cookie am Client, oder aber Du speicherst die Daten unter einem Token am Server als Sessiondaten, bzw, wenn sie langlebiger sein sollen, in einer Datenbank. Dieses Token wird dann in einem Cookie gespeichert am Client und bei jedem Request an die passende Domain im HTTP-Header mitgesendet. Bei PHP landet es dann in $_COOKIE. Und wenn Du session_start() benutzt, musst Du dich noch nicht einmal um das Cookie kümmern. Die Daten stehen dann automatisch beim nächten Request wieder in $_SESSION zur Verfügung.

        Aber das wusstest Du doch schon alles, oder? Dein Username ist mir jedenfalls nicht fremd ;-)

        Ehrlich gesagt nein, das wusste ich nicht alles. Ich weiß nicht mal, was ein token ist. Ich weiß nur, dass ich nicht erst eine Datenbank aufbauen und verwalten will. Ich will nur, dass meine Seite "individualisiert" werden kann. Also ich biete diverse feeds auf einer Seita an und möchte, dass die Leute unter "Einstellungen" eingeben können, welche der feeds und wieviel Zeilen davon sie angezeigt bekommen wollen. Und dass das dann immer gleich so aufgerufen wird, wenn sie meine Seite aufrufen (bzw. muss ich natürlich noch abfragen, ob sie nicht vielleicht Cookies deaktiviert haben). Also ich möchte beispielsweise, dass sie angeben können, ich möchte feed 1,4,7,8,9,12 und davon jeweils nur 7 Zeilen. Und beim nächsten Mal wird die Seite genau so angezeigt. Also, ich weiß z. B. nicht, wo ich genau abfrage, was im Cookie steht und wie ich diese Werte dann an den html-Part im body übergebe. Mir fehlen Beispiele, wie man sowas macht.

        Ein Cookie wird am Client gespeichert.

        Es kann nun entweder Daten für den Client speichern, aber die Gesamtgröße ist begrenzt (Ich sage jetzt mal, auf 2kByte pro Cookie). Oder es kann ein Token enthalten (z.B. eine Session-ID). Das ist i.d.R. eine total cryptische und nicht nachvollziehbare, möglichst (ein)eindeutige Digitfolge. Ich sage extra "Digit", denn die einzelnen Stellen dürfen nicht alle Bytewerte annehmen.

        Wenn deine Userzahl begrenzt bleibt, dann kannst Du auch Low-Level-Dateien benutzen oder, wenn die Userzahl sogar ganz klein ist, eine gemeinsame mit einem srialisierten Array, um die personalisierten Daten abzuspeichern.

        Das Ganze hat aber immer auch rechtliche Relevanz. Sowie Du über deine User personalisierbare Daten speicherst, musst Du ihre Einwilligung dazu haben. Ein Cookie pro User, der auf dessen Client gespeichert wird und auch dort (z.B. durch Javascript) ausgewertet wird, ist unverfänglicher.

        Grüße
        TS

        1. Ein Cookie pro User, der auf dessen Client gespeichert wird und auch dort (z.B. durch Javascript) ausgewertet wird, ist unverfänglicher.

          Beispiele für die Auswertung von cookies durch php oder js hast Du nicht, oder? Müssen ja keine fertigen snippets sein, aber irgendetwas, woran man sehen kann wie die daten dann ausgewertet werden.

          Gruß und Dank glupto

          1. Hallo und gute Nacht,

            Ein Cookie pro User, der auf dessen Client gespeichert wird und auch dort (z.B. durch Javascript) ausgewertet wird, ist unverfänglicher.

            Nochmal zur Klarstellung: Cookies werden (generisch) immer auf dem Client gespeichert. Die werden dann beim Request an den Server übermittelt. Der sollte sie aber überlicherweise nicht speichern, sondern nur ihre Daten auswerten.

            Wenn man nun viele Daten hat, kann man mittels eine speziellen "Session-Cookies", der also einen Sessionnamen und ein Token für den Client oder bei Authentication den User enthält, auch umfangreichere Datenmengen für diesen Client/User speichern.

            Beispiele für die Auswertung von cookies durch php oder js hast Du nicht, oder?

            Schau Dir doch erst einmal die Manualseiten von PHP zu

            an.
            Besonders die User Contributed Notes sind immer ganz spannend.

            Für JS und Cookies müsste es eigentlich im Self-WIKI 'was geben. Da hab' ich jetzt aber keinen Link im Kopf.

            Grüße
            TS

            1. Hallo nochmal, wenn die Cookies als erstes gesetzt werden müssen, wie mache ich es denn, wenn ich erstmal vom Nutzer ein paar Daten erfragen will und die dann hinterher als Cookie speichern will?

              Gruß glupto

              1. Tach!

                wenn die Cookies als erstes gesetzt werden müssen, wie mache ich es denn, wenn ich erstmal vom Nutzer ein paar Daten erfragen will und die dann hinterher als Cookie speichern will?

                Sie müssen nicht als erstes gesetzt werden, sie müssen nur vor der ersten Ausgabe gesetzt werden.

                dedlfix.

                1. Hallo und guten Abend Dedlfix,

                  wenn die Cookies als erstes gesetzt werden müssen, wie mache ich es denn, wenn ich erstmal vom Nutzer ein paar Daten erfragen will und die dann hinterher als Cookie speichern will?

                  Sie müssen nicht als erstes gesetzt werden, sie müssen nur vor der ersten Ausgabe gesetzt werden.

                  Ich glaube, Glupto hat sich immer noch nicht entschieden, ob er die Cookies clientseitig mit JavaScript setzen will oder serverseitig mit PHP. Darüber sollte er sich erst einmal klar werden, ob die Einstellungen auch am Server bekannt sein sollen später.

                  Grüße
                  TS

                  1. Ich glaube, Glupto hat sich immer noch nicht entschieden, ob er die Cookies clientseitig mit JavaScript setzen will oder serverseitig mit PHP. Darüber sollte er sich erst einmal klar werden, ob die Einstellungen auch am Server bekannt sein sollen später.

                    Die Einstellungen müssen nicht am Server bekannt sein, sie sollen nur dafür sorgen, dass beim Nutzer die Seite nach den individuellen Wünschen aufgebaut wird. ALso: Ich biete eine Unterseite: "EInstellungen", wo der Nutzer festlegt, was er sehen will und ich welcher Länge, danach soll die Hauptseite aufgerufen werden, so, wie er es sich vorher eingestellt hat....

                    1. Tach!

                      Die Einstellungen müssen nicht am Server bekannt sein,

                      Na dann nimm den localStorage oder auch sessionStorage von Javascript. Der ist wesentlich einfacher handzuhaben als Cookies.

                      dedlfix.

                      1. Tach!

                        Die Einstellungen müssen nicht am Server bekannt sein,

                        Na dann nimm den localStorage oder auch sessionStorage von Javascript. Der ist wesentlich einfacher handzuhaben als Cookies.

                        dedlfix.

                        Danke, kannte ich überhaupt nicht, damit werde ich mich befassen.