ralf: cookies

Hallo,

ich habe ein Problem mit cookies, und zwar hab ich eine Seite mit 27 Textfeldern.

auf der vorhergehenden seite werden 7 cookies gesetzt. also habe ich 34 Variablen die in einem cookie gespeichert werden sollen. Das Problem ist nur das nur 19 gespeichert werden. d.h. sobald die 20. variable gespeichert wird, wird die erste von vorne weggeschnitten.

woran kann das liegen?

Gruss und Danke

Ralf

  1. Hi Ralf,

    die beantwortung deiner Frage ist so etwas schwierig - kannst du etwas Code hier psten - dann wird´s wesentlich einfacher, auf deine FRage zu antworten..

    Gruss Sven

    1. Hi,

      die beantwortung deiner Frage ist so etwas schwierig - kannst du etwas Code hier psten - dann wird´s wesentlich einfacher, auf deine FRage zu antworten..

      klar geht das, sind halt nur ziemlich viel zeilen, aber ich versuche mich auf das wesentlich zu beschränken :)

      1. Seite
      Hier werden die Cookies registriert, welche für die seite erforderlich sind. Die Seite wird mit $PHP_SELF aufgerufen und der index=1 wird mit übergeben, damit bei einem aufruf über die navigationsleiste der wert nicht leer gesetzt wird. danach setze ich die variablen auf den wert des cookies, falls die seite über die navigation aufgerufen wurde (ich hoffe das ist verständlich):

      Aufruf für die nächste seite <a href="seite2.php?id=$PHPSESSID&desindex=1>. Auruf innerhalb der seite <a href='$PHP_SELF?id=$PHPSESSID&index=1>

      if ($index==1) {
       setcookie("cookie_r1",$r1,time() + (7 * 24 * 3600));
       setcookie("cookie_l1",$l1,time() + (7 * 24 * 3600));
       setcookie("cookie_m1",$m1,time() + (7 * 24 * 3600));
       setcookie("cookie_r2",$r2,time() + (7 * 24 * 3600));
       setcookie("cookie_style",$style,time() + (7 * 24 * 3600));
      }

      if ($r1=="") {
       $r1=$HTTP_COOKIE_VARS["cookie_r1"];
      }
      if ($l1=="") {
       $l1=$HTTP_COOKIE_VARS["cookie_l1"];
      }

      if ($m1=="") {
       $m1=$HTTP_COOKIE_VARS["cookie_m1"];
      }

      if ($r2=="") {
       $r2=$HTTP_COOKIE_VARS["cookie_r2"];
      }

      2. Seite
      Auf der Seite werden 27 Textfelder eingegeben. Zusätzlich werden zwei Variable von der 1. Seite übergeben die hier registriert werden. Sind die Textfelder im Cookie registriert werden sie in einem array gespeichert (für die text-value eigenschaft) ansonsten bleibt das array leer.

      aufruf für die nächste seite:
      <form method='post' action='seite3.php?id=$PHPSESSID&textindex=1>

      if ($desindex==1) {
       setcookie("cookie_design",$design,time() + (7 * 24 * 3600));
       setcookie("cookie_anker",$anker,time() + (7 * 24 * 3600));
      }

      $textinhalt=array("praxis"=>$cookie_text[0],"titel1"=>$cookie_text[1],"vorname1"=>$cookie_text[2],"nachname1"=>$cookie_text[3],"titel2"=>$cookie_text[4],"vorname2"=>$cookie_text[5],"nachname2"=>$cookie_text[6],"facharzt1"=>$cookie_text[7],"facharzt2"=>$cookie_text[8],"strasse"=>$cookie_text[9],"hausnr"=>$cookie_text[10],"land"=>$cookie_text[11],"plz"=>$cookie_text[12],"ort"=>$cookie_text[13],"email"=>$cookie_text[14],"homepage"=>$cookie_text[15],"vorwahl1"=>$cookie_text[16],"tel1"=>$cookie_text[17],"vorwahl2"=>$cookie_text[18],"tel2"=>$cookie_text[19],"vorwahl3"=>$cookie_text[20],"fax"=>$cookie_text[21],"bank1"=>$cookie_text[22],"blz1"=>$cookie_text[23],"konto1"=>$cookie_text[24],"bank2"=>$cookie_text[25],"blz2"=>$cookie_text[26],"konto2"=>$cookie_text[27]);

      3. Seite
      Hier werden die Textfelder gespeichert, weil diese von der 2. Seite übergeben werden. auch hier nur wenn $textindex=1 ist, damit bei einem aufruf über die navigation die felder nicht leer sind

      if ($textindex==1) {
       for ($i=0; $i<28; $i++) {
        setcookie("cookie_text[$i]",$text[$i],time() + (7 * 24 * 3600));
       }
      }

      Ich hoffe das reicht die an code, ansonsten poste ich noch mehr.

      Gruss

      Ralf

    2. Hi,

      die beantwortung deiner Frage ist so etwas schwierig - kannst du etwas Code hier psten - dann wird´s wesentlich einfacher, auf deine FRage zu antworten..

      klar geht das, sind halt nur ziemlich viel zeilen, aber ich versuche mich auf das wesentlich zu beschränken :)

      1. Seite
      Hier werden die Cookies registriert, welche für die seite erforderlich sind. Die Seite wird mit $PHP_SELF aufgerufen und der index=1 wird mit übergeben, damit bei einem aufruf über die navigationsleiste der wert nicht leer gesetzt wird. danach setze ich die variablen auf den wert des cookies, falls die seite über die navigation aufgerufen wurde (ich hoffe das ist verständlich):

      Aufruf für die nächste seite <a href="seite2.php?id=$PHPSESSID&desindex=1>. Auruf innerhalb der seite <a href='$PHP_SELF?id=$PHPSESSID&index=1>

      if ($index==1) {
       setcookie("cookie_r1",$r1,time() + (7 * 24 * 3600));
       setcookie("cookie_l1",$l1,time() + (7 * 24 * 3600));
       setcookie("cookie_m1",$m1,time() + (7 * 24 * 3600));
       setcookie("cookie_r2",$r2,time() + (7 * 24 * 3600));
       setcookie("cookie_style",$style,time() + (7 * 24 * 3600));
      }

      if ($r1=="") {
       $r1=$HTTP_COOKIE_VARS["cookie_r1"];
      }
      if ($l1=="") {
       $l1=$HTTP_COOKIE_VARS["cookie_l1"];
      }

      if ($m1=="") {
       $m1=$HTTP_COOKIE_VARS["cookie_m1"];
      }

      if ($r2=="") {
       $r2=$HTTP_COOKIE_VARS["cookie_r2"];
      }

      2. Seite
      Auf der Seite werden 27 Textfelder eingegeben. Zusätzlich werden zwei Variable von der 1. Seite übergeben die hier registriert werden. Sind die Textfelder im Cookie registriert werden sie in einem array gespeichert (für die text-value eigenschaft) ansonsten bleibt das array leer.

      aufruf für die nächste seite:
      <form method='post' action='seite3.php?id=$PHPSESSID&textindex=1>

      if ($desindex==1) {
       setcookie("cookie_design",$design,time() + (7 * 24 * 3600));
       setcookie("cookie_anker",$anker,time() + (7 * 24 * 3600));
      }

      $textinhalt=array("praxis"=>$cookie_text[0],"titel1"=>$cookie_text[1],"vorname1"=>$cookie_text[2],"nachname1"=>$cookie_text[3],"titel2"=>$cookie_text[4],"vorname2"=>$cookie_text[5],"nachname2"=>$cookie_text[6],"facharzt1"=>$cookie_text[7],"facharzt2"=>$cookie_text[8],"strasse"=>$cookie_text[9],"hausnr"=>$cookie_text[10],"land"=>$cookie_text[11],"plz"=>$cookie_text[12],"ort"=>$cookie_text[13],"email"=>$cookie_text[14],"homepage"=>$cookie_text[15],"vorwahl1"=>$cookie_text[16],"tel1"=>$cookie_text[17],"vorwahl2"=>$cookie_text[18],"tel2"=>$cookie_text[19],"vorwahl3"=>$cookie_text[20],"fax"=>$cookie_text[21],"bank1"=>$cookie_text[22],"blz1"=>$cookie_text[23],"konto1"=>$cookie_text[24],"bank2"=>$cookie_text[25],"blz2"=>$cookie_text[26],"konto2"=>$cookie_text[27]);

      die textfelder sehen so aus:
      <input type='text' name='text[0]' value='".$textinhalt['praxis']."'>

      3. Seite
      Hier werden die Textfelder gespeichert, weil diese von der 2. Seite übergeben werden. auch hier nur wenn $textindex=1 ist, damit bei einem aufruf über die navigation die felder nicht leer sind

      if ($textindex==1) {
       for ($i=0; $i<28; $i++) {
        setcookie("cookie_text[$i]",$text[$i],time() + (7 * 24 * 3600));
       }
      }

      Ich hoffe das reicht die an code, ansonsten poste ich noch mehr.

      wie gesagt, sobald 19 variablen gespeichert wurden, also bis textfeld 11, wird das textfeld 12 in das cookie geschrieben, dafür aber die erste variable (cookie_r1) gelöscht, so dass immer nur 19 variablen im cookie stehen

      Gruss

      Ralf

  2. Hallo,

    Tach,

    ich habe ein Problem mit cookies, und zwar hab ich eine Seite mit 27 Textfeldern.

    auf der vorhergehenden seite werden 7 cookies gesetzt. also habe ich 34 Variablen die in einem cookie gespeichert werden sollen. Das Problem ist nur das nur 19 gespeichert werden. d.h. sobald die 20. variable gespeichert wird, wird die erste von vorne weggeschnitten.

    woran kann das liegen?

    Du kannst nicht beliebig viele Daten in Cookies speichern.
    Je nach Browser sind das 1 bis 2 Kilobyte...
    Und da gehen expiry-date, domain, usw. mit in die Rechnung ein.
    Bei 34 Variablen ist die Grenze schnell erreicht.

    Andreas

    1. Hi,

      Du kannst nicht beliebig viele Daten in Cookies speichern.
      Je nach Browser sind das 1 bis 2 Kilobyte...
      Und da gehen expiry-date, domain, usw. mit in die Rechnung ein.
      Bei 34 Variablen ist die Grenze schnell erreicht.

      kann ich denn eine zweite cookie-datei anlegen?

      Gruss

      Ralf

      1. Hi,

        Hallo,

        Du kannst nicht beliebig viele Daten in Cookies speichern.
        Je nach Browser sind das 1 bis 2 Kilobyte...
        Und da gehen expiry-date, domain, usw. mit in die Rechnung ein.
        Bei 34 Variablen ist die Grenze schnell erreicht.

        kann ich denn eine zweite cookie-datei anlegen?

        Diese Begrenzung hat unter anderem den Sinn, daß niemand die Platte des Surfers vollmachen kann.
        Wie sinnvoll wäre es, wenn man das umgehen könnte?
        Beantwortet das Deine Frage?
        Andreas

        1. Hi,

          Diese Begrenzung hat unter anderem den Sinn, daß niemand die Platte des Surfers vollmachen kann.
          Wie sinnvoll wäre es, wenn man das umgehen könnte?
          Beantwortet das Deine Frage?
          Andreas

          Das beantwortet die Frag, lösst aber nicht mein Problem. ich brauche die variablen bei einem neuaufruf der seite. kann man das anders lösen?

          Gruss

          Ralf

          1. Hi,

            Diese Begrenzung hat unter anderem den Sinn, daß niemand die Platte des Surfers vollmachen kann.
            Wie sinnvoll wäre es, wenn man das umgehen könnte?
            Beantwortet das Deine Frage?
            Andreas

            Das beantwortet die Frag, lösst aber nicht mein Problem. ich brauche die variablen bei einem neuaufruf der seite. kann man das anders lösen?

            z.B. die Daten serverseitig speichern zusammen mit einer id.
            Nur die id wird zum Wiederauffinden in den Cookie gespeichert.

            Andreas